aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/scan.c
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2010-07-27 16:33:08 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-07-28 16:24:02 -0400
commita0daa0e7592ada797d6835f11529097aabc27ad2 (patch)
tree4ac6eee98f6ae61833237699070f44e54fa5f48a /net/mac80211/scan.c
parent308883380c615b8b3d2c0eadb8680a921177c0b3 (diff)
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)
286 local->scanning = 0; 286 local->scanning = 0;
287 local->scan_channel = NULL; 287 local->scan_channel = NULL;
288 288
289 drv_sw_scan_complete(local);
290
291 /* we only have to protect scan_req and hw/sw scan */ 289 /* we only have to protect scan_req and hw/sw scan */
292 mutex_unlock(&local->scan_mtx); 290 mutex_unlock(&local->scan_mtx);
293 291
@@ -297,6 +295,8 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted)
297 295
298 ieee80211_configure_filter(local); 296 ieee80211_configure_filter(local);
299 297
298 drv_sw_scan_complete(local);
299
300 ieee80211_offchannel_return(local, true); 300 ieee80211_offchannel_return(local, true);
301 301
302 done: 302 done: