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 | fe2c9b4e1dc0434ac1b7385c5eb2e024070c7a3d (patch) | |
tree | b4a0f069e60dd88e46b521702a66942f5b61d0bc /package/kernel | |
parent | b8795d6b664578b9a5a4cdf6165ec1e394a7a1a4 (diff) | |
download | mtk-20170518-fe2c9b4e1dc0434ac1b7385c5eb2e024070c7a3d.zip mtk-20170518-fe2c9b4e1dc0434ac1b7385c5eb2e024070c7a3d.tar.gz mtk-20170518-fe2c9b4e1dc0434ac1b7385c5eb2e024070c7a3d.tar.bz2 |
ath9k: fix AP mode crash issues
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 40428
Diffstat (limited to 'package/kernel')
-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 deae67a..31eab5e 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) |