aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/310-ath9k-set-ATH_OP_INVALID-before-disabling-hardware.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/310-ath9k-set-ATH_OP_INVALID-before-disabling-hardware.patch')
-rw-r--r--package/kernel/mac80211/patches/310-ath9k-set-ATH_OP_INVALID-before-disabling-hardware.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/310-ath9k-set-ATH_OP_INVALID-before-disabling-hardware.patch b/package/kernel/mac80211/patches/310-ath9k-set-ATH_OP_INVALID-before-disabling-hardware.patch
new file mode 100644
index 0000000000..c382e5d103
--- /dev/null
+++ b/package/kernel/mac80211/patches/310-ath9k-set-ATH_OP_INVALID-before-disabling-hardware.patch
@@ -0,0 +1,29 @@
+From: Felix Fietkau <nbd@openwrt.org>
+Date: Thu, 13 Nov 2014 18:29:00 +0100
+Subject: [PATCH] ath9k: set ATH_OP_INVALID before disabling hardware
+
+Closes another small IRQ handler race
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+---
+
+--- a/drivers/net/wireless/ath/ath9k/main.c
++++ b/drivers/net/wireless/ath/ath9k/main.c
+@@ -885,6 +885,9 @@ static void ath9k_stop(struct ieee80211_
+ &sc->cur_chan->chandef);
+
+ ath9k_hw_reset(ah, ah->curchan, ah->caldata, false);
++
++ set_bit(ATH_OP_INVALID, &common->op_flags);
++
+ ath9k_hw_phy_disable(ah);
+
+ ath9k_hw_configpcipowersave(ah, true);
+@@ -893,7 +896,6 @@ static void ath9k_stop(struct ieee80211_
+
+ ath9k_ps_restore(sc);
+
+- set_bit(ATH_OP_INVALID, &common->op_flags);
+ sc->ps_idle = prev_idle;
+
+ mutex_unlock(&sc->mutex);