summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-11-16 13:08:43 +0100
committerJohn W. Linville <linville@tuxdriver.com>2011-12-07 15:19:36 -0500
commitdaa1b6ee45170404efb3002ae2ff06e572f7ceba (patch)
treea0cdba89bf7641200e543c149405af5e03b845b2 /drivers/net/wireless/ath
parent9df0d6a20a4e6d15684cc8f2e3f0155be0801592 (diff)
ath9k: cancel all workqueue activity when going idle
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 36315c83d4c..714c7d82eb5 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -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