summaryrefslogtreecommitdiffstats
path: root/net/mac80211/scan.c
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2010-07-27 22:33:08 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-07-28 22:24:02 +0200
commita0daa0e7592ada797d6835f11529097aabc27ad2 (patch)
tree4ac6eee98f6ae61833237699070f44e54fa5f48a /net/mac80211/scan.c
parentath9k: remove the two wiphys scanning at the same time message (diff)
downloadlinux-a0daa0e7592ada797d6835f11529097aabc27ad2.tar.xz
linux-a0daa0e7592ada797d6835f11529097aabc27ad2.zip
Revert "mac80211: fix sw scan bracketing"
This reverts this commit. While in theory the change is correct the patch does not address current assumptions made by some drivers, one which is definitley affected is ath9k. Prior to this change the scan complete callback would be called after we returned to the home channel and configured the hardware RX filters. After this change we call the scan complete callback prior to both the hw config and the config filter. At least for ath9k this breaks quite a few assumptions on the callback, leading to disconnects to the AP after every scan making the driver pretty useless on STA mode. The goal behind this commit was to address the now understood spurious warnings from ath9k and mac80211_hwsim on scanning on two wiphys at the same time but we have now supressed these and will address this issue in the next kernel release. When fixing this for good next we must first review the other driver's dependence on this logic and perhaps consider removal of the scan complete callback all together. Cc: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/scan.c')
-rw-r--r--net/mac80211/scan.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 439c98d93a79..41635b2c91bf 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -286,8 +286,6 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
local->scanning = 0;
local->scan_channel = NULL;
- drv_sw_scan_complete(local);
-
/* we only have to protect scan_req and hw/sw scan */
mutex_unlock(&local->scan_mtx);
@@ -297,6 +295,8 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
ieee80211_configure_filter(local);
+ drv_sw_scan_complete(local);
+
ieee80211_offchannel_return(local, true);
done: