summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLuis R. Rodriguez <lrodriguez@atheros.com>2010-12-08 00:13:22 +0100
committerJohn W. Linville <linville@tuxdriver.com>2010-12-08 21:38:45 +0100
commitff9f0b639f33c92a89b0799263ab625444be6ee1 (patch)
tree781c4564dded92afcdc6f6301778fe183da5baad /drivers
parentcfg80211: add some element IDs in enum ieee80211_eid (diff)
downloadlinux-ff9f0b639f33c92a89b0799263ab625444be6ee1.tar.xz
linux-ff9f0b639f33c92a89b0799263ab625444be6ee1.zip
ath9k: skip ATH9K_INT_TIM_TIMER when we are idle
We should not be idle when we get the ATH9K_INT_TIM_TIMER, otherwise its a sign of something broken in our design with our idle state machine and mac80211. Skip these and WARN once just in case this is triggerable. 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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 3e0c8a1874b4..41a312a3d401 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -765,6 +765,8 @@ irqreturn_t ath_isr(int irq, void *dev)
if (!(ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
if (status & ATH9K_INT_TIM_TIMER) {
+ if (ATH_DBG_WARN_ON_ONCE(sc->ps_idle))
+ goto chip_reset;
/* Clear RxAbort bit so that we can
* receive frames */
ath9k_setpower(sc, ATH9K_PM_AWAKE);