From 0607f7c5fc30ea3bd365cc30f7b0b9562d9676b8 Mon Sep 17 00:00:00 2001 From: Luis R. Rodriguez Date: Wed, 8 Sep 2010 14:49:06 -0700 Subject: [PATCH 8/9] mac80211: disable beacon monitor while going offchannel The beacon monitor should be disabled when going off channel to prevent spurious warnings and triggering connection deterioration work such as sending probe requests. Re-enable the beacon monitor once we come back to the home channel. Cc: stable@kernel.org [2.6.32] Signed-off-by: Luis R. Rodriguez --- net/mac80211/offchannel.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c index a13875c..3c63ad0 100644 --- a/net/mac80211/offchannel.c +++ b/net/mac80211/offchannel.c @@ -22,12 +22,14 @@ static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata) { struct ieee80211_local *local = sdata->local; + struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; local->offchannel_ps_enabled = false; /* FIXME: what to do when local->pspolling is true? */ del_timer_sync(&local->dynamic_ps_timer); + del_timer_sync(&ifmgd->bcn_mon_timer); del_timer_sync(&sdata->u.mgd.conn_mon_timer); cancel_work_sync(&local->dynamic_ps_enable_work); @@ -88,6 +90,7 @@ static void ieee80211_offchannel_ps_disable(struct ieee80211_sub_if_data *sdata) msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); } + ieee80211_sta_reset_beacon_monitor(sdata); ieee80211_sta_reset_conn_monitor(sdata); } -- 1.7.0.4