diff options
author | Christian Lamparter <chunkeey@web.de> | 2009-07-19 16:09:32 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-07-24 15:05:27 -0400 |
commit | a99d02483a40b9410d8a7af3b653ebc3f106280f (patch) | |
tree | 3ef736c77ed303f6f9b3d8f7f82256c835b54834 /net/mac80211/mlme.c | |
parent | 9ab56078e638efb75ac4ccd27c7196cdfed2e6c8 (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/mac80211/mlme.c')
-rw-r--r-- | net/mac80211/mlme.c | 3 |
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) | |||
2213 | container_of(work, struct ieee80211_sub_if_data, | 2213 | container_of(work, struct ieee80211_sub_if_data, |
2214 | u.mgd.monitor_work); | 2214 | u.mgd.monitor_work); |
2215 | 2215 | ||
2216 | if (sdata->local->sw_scanning || sdata->local->hw_scanning) | ||
2217 | return; | ||
2218 | |||
2216 | ieee80211_mgd_probe_ap(sdata, false); | 2219 | ieee80211_mgd_probe_ap(sdata, false); |
2217 | } | 2220 | } |
2218 | 2221 | ||