diff options
author | Amitkumar Karwar <akarwar@marvell.com> | 2014-04-14 15:31:05 -0700 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-04-15 13:27:05 -0400 |
commit | 20474129d8bb0e6f113634f4f0f4f1584d0beed2 (patch) | |
tree | 7a90e4c3e633b0ca1cc7cb51b2b3ca00a80454ba /drivers/net | |
parent | c0da71ff4d2cbf113465bff9a7c413154be25a89 (diff) | |
download | op-kernel-dev-20474129d8bb0e6f113634f4f0f4f1584d0beed2.zip op-kernel-dev-20474129d8bb0e6f113634f4f0f4f1584d0beed2.tar.gz |
mwifiex: process event before command response
During extended scan, SCAN report event is always followed by
command response. Sometimes It is observed that command response
is processed before SCAN report which leads to a crash, because
current command node is cleared while handling the response.
This patch makes sure that driver's main thread gives priority
to events over command responses.
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Maithili Hinge <maithili@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/mwifiex/main.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c index 77db088..9c771b3 100644 --- a/drivers/net/wireless/mwifiex/main.c +++ b/drivers/net/wireless/mwifiex/main.c @@ -292,6 +292,12 @@ process_start: while ((skb = skb_dequeue(&adapter->usb_rx_data_q))) mwifiex_handle_rx_packet(adapter, skb); + /* Check for event */ + if (adapter->event_received) { + adapter->event_received = false; + mwifiex_process_event(adapter); + } + /* Check for Cmd Resp */ if (adapter->cmd_resp_received) { adapter->cmd_resp_received = false; @@ -304,12 +310,6 @@ process_start: } } - /* Check for event */ - if (adapter->event_received) { - adapter->event_received = false; - mwifiex_process_event(adapter); - } - /* Check if we need to confirm Sleep Request received previously */ if (adapter->ps_state == PS_STATE_PRE_SLEEP) { |