diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-04-08 22:11:19 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-04-08 22:11:19 +0000 |
commit | 2d7b490808d380febb9546f7d72c8196f7d9c022 (patch) | |
tree | 4281b3553a6c5ec25f5742a73db525dd4376c9d4 | |
parent | 658d48c1e538318ce7c2662f2515117895e1a177 (diff) | |
download | upstream-2d7b490808d380febb9546f7d72c8196f7d9c022.tar.gz upstream-2d7b490808d380febb9546f7d72c8196f7d9c022.tar.bz2 upstream-2d7b490808d380febb9546f7d72c8196f7d9c022.zip |
ath9k: fix AP mode crash issues
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40428 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | package/kernel/mac80211/patches/300-pending_work.patch | 29 |
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) |