]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
mac80211: disable beacon monitor while going offchannel
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Thu, 16 Sep 2010 19:12:33 +0000 (15:12 -0400)
committerAndi Kleen <ak@linux.intel.com>
Tue, 14 Dec 2010 22:40:01 +0000 (23:40 +0100)
commit 3bc3c0d748402e8c1f31b8569f5924d25d7b8e30 upstream.

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.

This patch has fixes for stable kernels [2.6.34+].

Cc: Paul Stewart <pstew@google.com>
Cc: Amod Bodas <amod.bodas@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
net/mac80211/offchannel.c

index d4e837834209a172c8321f5f184380fe72a1a0c3..cf5ee305785b68ad6a49dbfd8c6013024db1c7d8 100644 (file)
@@ -29,6 +29,7 @@ static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata)
        /* 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(&ifmgd->conn_mon_timer);
 
        cancel_work_sync(&local->dynamic_ps_enable_work);
@@ -89,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);
 }