aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-04-08 22:11:19 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-04-08 22:11:19 +0000
commitfe2c9b4e1dc0434ac1b7385c5eb2e024070c7a3d (patch)
treeb4a0f069e60dd88e46b521702a66942f5b61d0bc /package
parentb8795d6b664578b9a5a4cdf6165ec1e394a7a1a4 (diff)
downloadupstream-fe2c9b4e1dc0434ac1b7385c5eb2e024070c7a3d.tar.gz
upstream-fe2c9b4e1dc0434ac1b7385c5eb2e024070c7a3d.tar.bz2
upstream-fe2c9b4e1dc0434ac1b7385c5eb2e024070c7a3d.zip
ath9k: fix AP mode crash issues
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 40428
Diffstat (limited to 'package')
-rw-r--r--package/kernel/mac80211/patches/300-pending_work.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/300-pending_work.patch b/package/kernel/mac80211/patches/300-pending_work.patch
index deae67a420..31eab5e402 100644
--- a/package/kernel/mac80211/patches/300-pending_work.patch
+++ b/package/kernel/mac80211/patches/300-pending_work.patch
@@ -1,3 +1,16 @@
+commit ec998e5991781ecdaad0911dc64f1c8d3749c308
+Author: Felix Fietkau <nbd@openwrt.org>
+Date: Tue Apr 8 23:42:17 2014 +0200
+
+ ath9k: fix a scheduling while atomic bug in CSA handling
+
+ Commit "ath9k: prepare for multi-interface CSA support" added a call to
+ ieee80211_iterate_active_interfaces in atomic context (beacon tasklet),
+ which is crashing.
+ Use ieee80211_iterate_active_interfaces_atomic instead.
+
+ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+
commit 93f310a38a1d81a4bc8fcd9bf29628bd721cf2ef
Author: Felix Fietkau <nbd@openwrt.org>
Date: Sun Apr 6 23:35:28 2014 +0200
@@ -26,3 +39,19 @@ Date: Sun Apr 6 23:35:28 2014 +0200
if (level != aniState->firstepLevel) {
ath_dbg(common, ANI,
+--- a/drivers/net/wireless/ath/ath9k/beacon.c
++++ b/drivers/net/wireless/ath/ath9k/beacon.c
+@@ -312,10 +312,9 @@ static void ath9k_csa_update_vif(void *d
+
+ void ath9k_csa_update(struct ath_softc *sc)
+ {
+- ieee80211_iterate_active_interfaces(sc->hw,
+- IEEE80211_IFACE_ITER_NORMAL,
+- ath9k_csa_update_vif,
+- sc);
++ ieee80211_iterate_active_interfaces_atomic(sc->hw,
++ IEEE80211_IFACE_ITER_NORMAL,
++ ath9k_csa_update_vif, sc);
+ }
+
+ void ath9k_beacon_tasklet(unsigned long data)