diff options
author | Juuso Oikarinen <juuso.oikarinen@nokia.com> | 2010-02-26 01:13:41 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-02-26 16:59:12 -0500 |
commit | 0e0a228398cc967c922759be36c69d32e4f62701 (patch) | |
tree | 20ecd4b6d2387935aebc9ea54c1c0e41005d74bd /net/mac80211/work.c | |
parent | caf66e581172dc5032bb84841a91bc7b77ad9876 (diff) |
mac80211: fix direct probe loop on ieee80211_work_purge
If authentication has already been performed when the WLAN interface is
stopped, (sometimes) the ieee80211_work_purge would corrupt some
ieee80211_work-structures. The outcome is this (cleaned up):
[ 2252.398681] WARNING: at net/mac80211/work.c:995 ieee80211_work_purge
[ 2252.466430] Backtrace:
[ 2252.529266] (ieee80211_work_purge+0x0/0xcc [mac80211])
[ 2252.546875] (ieee80211_stop+0x0/0x4c0 [mac80211])
Additionally, one would get this, going on regarless of the WLAN interface
state, going on forever:
[ 2252.859985] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717525)
[ 2253.055419] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717524)
[ 2253.250610] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717523)
[ 2253.446014] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717522)
[ 2253.641357] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717521)
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/work.c')
-rw-r--r-- | net/mac80211/work.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/mac80211/work.c b/net/mac80211/work.c index 7e708d5c88b4..1e1ea3007b06 100644 --- a/net/mac80211/work.c +++ b/net/mac80211/work.c | |||
@@ -869,6 +869,7 @@ static void ieee80211_work_work(struct work_struct *work) | |||
869 | break; | 869 | break; |
870 | case IEEE80211_WORK_ABORT: | 870 | case IEEE80211_WORK_ABORT: |
871 | rma = WORK_ACT_TIMEOUT; | 871 | rma = WORK_ACT_TIMEOUT; |
872 | break; | ||
872 | case IEEE80211_WORK_DIRECT_PROBE: | 873 | case IEEE80211_WORK_DIRECT_PROBE: |
873 | rma = ieee80211_direct_probe(wk); | 874 | rma = ieee80211_direct_probe(wk); |
874 | break; | 875 | break; |