summaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorJohannes Berg2010-08-27 12:35:54 +0200
committerJohn W. Linville2010-08-27 19:53:30 +0200
commitb9dcf712d1fb98bf279fcd453a42a763b104961d (patch)
treea09aa20ca2c26dbf9439beca7c8c9a403e70c8b5 /net/mac80211/mlme.c
parentmac80211: use subqueue helpers (diff)
downloadkernel-qcow2-linux-b9dcf712d1fb98bf279fcd453a42a763b104961d.tar.gz
kernel-qcow2-linux-b9dcf712d1fb98bf279fcd453a42a763b104961d.tar.xz
kernel-qcow2-linux-b9dcf712d1fb98bf279fcd453a42a763b104961d.zip
mac80211: clean up ifdown/cleanup paths
There's a lot of redundant code in mac80211's interface cleanup/down, for example freeing AP beacons is done both when the interface is set DOWN as well as when it is torn down, of which only the former has any effect. Also, a bunch of things should be closer to where they matter, like the MLME timers that we should cancel when disassociating, rather than only when the interface is set DOWN. Clean up all this code. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 0cb429657474..c8694478cde2 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -991,6 +991,11 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
if (remove_sta)
sta_info_destroy_addr(sdata, bssid);
+
+ del_timer_sync(&sdata->u.mgd.conn_mon_timer);
+ del_timer_sync(&sdata->u.mgd.bcn_mon_timer);
+ del_timer_sync(&sdata->u.mgd.timer);
+ del_timer_sync(&sdata->u.mgd.chswitch_timer);
}
void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata,