mac80211: stop scan before connection
authorDavid Spinadel <david.spinadel@intel.com>
Tue, 17 Mar 2015 17:58:38 +0000 (19:58 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 30 Mar 2015 08:19:13 +0000 (10:19 +0200)
Stop scan before authentication or association to make sure
that nothing interferes with connection flow.

Currently mac80211 defers RX auth and assoc packets (among other ones)
until after the scan is complete, so auth during scan is likely to fail
if scan took too much time.

Signed-off-by: David Spinadel <david.spinadel@intel.com>
Reviewed-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/mlme.c

index 22b1259136619162cec8932d47711c70e60d12c4..4a01a836f8703bc64a01cbcf36c631629a6a3fa4 100644 (file)
@@ -4439,6 +4439,10 @@ static int ieee80211_prep_connection(struct ieee80211_sub_if_data *sdata,
        } else
                WARN_ON_ONCE(!ether_addr_equal(ifmgd->bssid, cbss->bssid));
 
+       /* Cancel scan to ensure that nothing interferes with connection */
+       if (local->scanning)
+               ieee80211_scan_cancel(local);
+
        return 0;
 }