Index: chromeos/compat-wireless/net/mac80211/offchannel.c |
diff --git a/chromeos/compat-wireless/net/mac80211/offchannel.c b/chromeos/compat-wireless/net/mac80211/offchannel.c |
index c36b1911987afec08262139ccaaf5e7887a17735..d4e837834209a172c8321f5f184380fe72a1a0c3 100644 |
--- a/chromeos/compat-wireless/net/mac80211/offchannel.c |
+++ b/chromeos/compat-wireless/net/mac80211/offchannel.c |
@@ -22,12 +22,15 @@ |
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->conn_mon_timer); |
+ |
cancel_work_sync(&local->dynamic_ps_enable_work); |
if (local->hw.conf.flags & IEEE80211_CONF_PS) { |
@@ -85,6 +88,8 @@ static void ieee80211_offchannel_ps_disable(struct ieee80211_sub_if_data *sdata) |
mod_timer(&local->dynamic_ps_timer, jiffies + |
msecs_to_jiffies(local->hw.conf.dynamic_ps_timeout)); |
} |
+ |
+ ieee80211_sta_reset_conn_monitor(sdata); |
} |
void ieee80211_offchannel_stop_beaconing(struct ieee80211_local *local) |