ath9k: cancel all workqueue activity when going idle
authorFelix Fietkau <nbd@openwrt.org>
Wed, 16 Nov 2011 12:08:43 +0000 (13:08 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 7 Dec 2011 20:19:36 +0000 (15:19 -0500)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/main.c

index 36315c83d4ca7f04ff2c6fbea2025bffbf3acb7b..714c7d82eb5362d9f95de848a10a378c4d823a0c 100644 (file)
@@ -1595,8 +1595,11 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
         * of the changes. Likewise we must only disable the radio towards
         * the end.
         */
-       if (changed & IEEE80211_CONF_CHANGE_IDLE)
+       if (changed & IEEE80211_CONF_CHANGE_IDLE) {
                sc->ps_idle = !!(conf->flags & IEEE80211_CONF_IDLE);
+               if (sc->ps_idle)
+                       ath_cancel_work(sc);
+       }
 
        /*
         * We just prepare to enable PS. We have to wait until our AP has