summaryrefslogtreecommitdiffstats
path: root/net/mac80211/iface.c
diff options
context:
space:
mode:
authorAndrei Otcheretianski <andrei.otcheretianski@intel.com>2015-08-15 22:04:01 +0300
committerJohannes Berg <johannes.berg@intel.com>2015-09-22 15:21:20 +0200
commitfc58c47ef1ace65c5c1c94f2e96578e7b04aad64 (patch)
tree7e8be2b89bb5e69677589c2c3bef71736c46889e /net/mac80211/iface.c
parent8de1c63ba1ccfa8225505e60b405537c2c72673c (diff)
downloadlinux-fc58c47ef1ace65c5c1c94f2e96578e7b04aad64.tar.gz
linux-fc58c47ef1ace65c5c1c94f2e96578e7b04aad64.tar.bz2
linux-fc58c47ef1ace65c5c1c94f2e96578e7b04aad64.zip
mac80211: process skb_queue while scanning in HW
Queued frames aren't processed during scan, which results in an inability to complete the BA session establishment until the scan ends. Since we can't tx frames until the BA agreement setup is complete, it might result in a very large latency during scan. Fix this by allowing to process queued skbs while scanning in HW. This should be ok since the devices which support hw scan should be able to handle tx/rx while scanning. During SW scan, mac80211 drops any txed frames besides probes and NDPs, so it is still needed to delay processing of the queued frames till the SW scan is done. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/iface.c')
-rw-r--r--net/mac80211/iface.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 6964fc6a8ea2..42d7f0f65bd6 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -1204,7 +1204,7 @@ static void ieee80211_iface_work(struct work_struct *work)
if (!ieee80211_sdata_running(sdata))
return;
- if (local->scanning)
+ if (test_bit(SCAN_SW_SCANNING, &local->scanning))
return;
if (!ieee80211_can_run_worker(local))