aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2010-02-26 08:13:41 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-02-26 16:59:12 -0500
commit0e0a228398cc967c922759be36c69d32e4f62701 (patch)
tree20ecd4b6d2387935aebc9ea54c1c0e41005d74bd
parentcaf66e581172dc5032bb84841a91bc7b77ad9876 (diff)
downloadkernel_samsung_espresso10-0e0a228398cc967c922759be36c69d32e4f62701.zip
kernel_samsung_espresso10-0e0a228398cc967c922759be36c69d32e4f62701.tar.gz
kernel_samsung_espresso10-0e0a228398cc967c922759be36c69d32e4f62701.tar.bz2
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>
-rw-r--r--net/mac80211/work.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/mac80211/work.c b/net/mac80211/work.c
index 7e708d5..1e1ea30 100644
--- a/net/mac80211/work.c
+++ b/net/mac80211/work.c
@@ -869,6 +869,7 @@ static void ieee80211_work_work(struct work_struct *work)
break;
case IEEE80211_WORK_ABORT:
rma = WORK_ACT_TIMEOUT;
+ break;
case IEEE80211_WORK_DIRECT_PROBE:
rma = ieee80211_direct_probe(wk);
break;