mwifiex: fix failed to reconnect after interface disabled/enabled
authorAmitkumar Karwar <akarwar@marvell.com>
Mon, 25 Jul 2016 15:51:06 +0000 (21:21 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Sat, 3 Sep 2016 09:57:15 +0000 (12:57 +0300)
Recent patch "mwifiex: fix NULL pointer" skips extended scan event
handling when suspend is in progress. It created a problem for scan
after interface disabled/enabled case.

This patch solves the problem by checking netif_running() status.

Fixes:16d25da94f3d654 ("mwifiex: fix NULL pointer dereference during suspend")
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/sta_event.c

index a422f3306d4d36e1a126d00940dc3876b32e0d15..7e394d485f54c8c48fedc0c32786b179f8f9b4c6 100644 (file)
@@ -708,7 +708,11 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)
 
        case EVENT_EXT_SCAN_REPORT:
                mwifiex_dbg(adapter, EVENT, "event: EXT_SCAN Report\n");
-               if (adapter->ext_scan && !priv->scan_aborting)
+               /* We intend to skip this event during suspend, but handle
+                * it in interface disabled case
+                */
+               if (adapter->ext_scan && (!priv->scan_aborting ||
+                                         !netif_running(priv->netdev)))
                        ret = mwifiex_handle_event_ext_scan_report(priv,
                                                adapter->event_skb->data);