aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/offchannel.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c
index eeacaa59380a..627a33ef84c4 100644
--- a/net/mac80211/offchannel.c
+++ b/net/mac80211/offchannel.c
@@ -22,12 +22,15 @@
22static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata) 22static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata)
23{ 23{
24 struct ieee80211_local *local = sdata->local; 24 struct ieee80211_local *local = sdata->local;
25 struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
25 26
26 local->offchannel_ps_enabled = false; 27 local->offchannel_ps_enabled = false;
27 28
28 /* FIXME: what to do when local->pspolling is true? */ 29 /* FIXME: what to do when local->pspolling is true? */
29 30
30 del_timer_sync(&local->dynamic_ps_timer); 31 del_timer_sync(&local->dynamic_ps_timer);
32 del_timer_sync(&ifmgd->conn_mon_timer);
33
31 cancel_work_sync(&local->dynamic_ps_enable_work); 34 cancel_work_sync(&local->dynamic_ps_enable_work);
32 35
33 if (local->hw.conf.flags & IEEE80211_CONF_PS) { 36 if (local->hw.conf.flags & IEEE80211_CONF_PS) {
@@ -85,6 +88,8 @@ static void ieee80211_offchannel_ps_disable(struct ieee80211_sub_if_data *sdata)
85 mod_timer(&local->dynamic_ps_timer, jiffies + 88 mod_timer(&local->dynamic_ps_timer, jiffies +
86 msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); 89 msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout));
87 } 90 }
91
92 ieee80211_sta_reset_conn_monitor(sdata);
88} 93}
89 94
90void ieee80211_offchannel_stop_beaconing(struct ieee80211_local *local) 95void ieee80211_offchannel_stop_beaconing(struct ieee80211_local *local)