summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-12-20 16:18:45 +0100
committerJohn W. Linville <linville@tuxdriver.com>2014-01-03 15:36:56 -0500
commita6a172b292a13c44464d9012809f24da41ddbf8a (patch)
tree653d8e1b81ac210dba29f9ca4c4e37f7ac249df0 /drivers
parentf84d1b49c9ef9057defc47137405d1c1b87b19db (diff)
downloadlinux-a6a172b292a13c44464d9012809f24da41ddbf8a.tar.bz2
ath9k_hw: fix gentimer callback without overflow handler
If a gentimer has both the trigger and the overflow bits set, only mask out the trigger bit if an overflow handler is present. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index a4b1ae026216..160be020a031 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -3084,14 +3084,14 @@ void ath_gen_timer_isr(struct ath_hw *ah)
trigger_mask &= timer_table->timer_mask;
thresh_mask &= timer_table->timer_mask;
- trigger_mask &= ~thresh_mask;
-
for_each_set_bit(index, &thresh_mask, ARRAY_SIZE(timer_table->timers)) {
timer = timer_table->timers[index];
if (!timer)
continue;
if (!timer->overflow)
continue;
+
+ trigger_mask &= ~BIT(index);
timer->overflow(timer->arg);
}