summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorChristian Lamparter <chunkeey@web.de>2009-07-19 22:09:32 +0200
committerJohn W. Linville <linville@tuxdriver.com>2009-07-24 15:05:27 -0400
commita99d02483a40b9410d8a7af3b653ebc3f106280f (patch)
tree3ef736c77ed303f6f9b3d8f7f82256c835b54834 /net
parent9ab56078e638efb75ac4ccd27c7196cdfed2e6c8 (diff)
mac80211: do not monitor the connection while scanning
mac80211 constantly monitors the connection to the associated AP in order to check if it is out of reach/dead. This is absolutely fine most of the time. Except when there is a scheduled scan for the whole neighborhood. After all this path could trigger while scanning on different channel. Or even worse: this AP probing triggers a WARN_ON in rate_lowest_index when the scan code did a band transition! ( http://www.kerneloops.org/raw.php?rawid=449304 ) Reported-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Christian Lamparter <chunkeey@web.de> Tested-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/mlme.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index e3b3156aca9e..523c0d994d15 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -2213,6 +2213,9 @@ static void ieee80211_sta_monitor_work(struct work_struct *work)
container_of(work, struct ieee80211_sub_if_data,
u.mgd.monitor_work);
+ if (sdata->local->sw_scanning || sdata->local->hw_scanning)
+ return;
+
ieee80211_mgd_probe_ap(sdata, false);
}