summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Spinadel <david.spinadel@intel.com>2015-03-17 17:58:38 (GMT)
committerJohannes Berg <johannes.berg@intel.com>2015-03-30 08:19:13 (GMT)
commit7d830a198689bd33057923e0370147d43241c7f0 (patch)
treee43608fe1328d857965f6ff2ac3c9fca605cff20
parent21fea567313641b6be69e0c684dc36c871ac848c (diff)
downloadlinux-7d830a198689bd33057923e0370147d43241c7f0.tar.xz
mac80211: stop scan before connection
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>
-rw-r--r--net/mac80211/mlme.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 22b1259..4a01a83 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -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;
}