mac80211: fix warnings triggered by tx power changes when using WDS AP (#15491)
[openwrt/staging/chunkeey.git] / package / kernel / mac80211 / patches / 300-pending_work.patch
1 commit 0ca13e26341733bf9577287fb04a3bef0d2f5cc9
2 Author: Felix Fietkau <nbd@openwrt.org>
3 Date: Wed Apr 9 00:07:01 2014 +0200
4
5 mac80211: suppress BSS info change notifications for AP_VLAN
6
7 Fixes warnings on tx power changes
8
9 Signed-off-by: Felix Fietkau <nbd@openwrt.org>
10
11 commit ec998e5991781ecdaad0911dc64f1c8d3749c308
12 Author: Felix Fietkau <nbd@openwrt.org>
13 Date: Tue Apr 8 23:42:17 2014 +0200
14
15 ath9k: fix a scheduling while atomic bug in CSA handling
16
17 Commit "ath9k: prepare for multi-interface CSA support" added a call to
18 ieee80211_iterate_active_interfaces in atomic context (beacon tasklet),
19 which is crashing.
20 Use ieee80211_iterate_active_interfaces_atomic instead.
21
22 Signed-off-by: Felix Fietkau <nbd@openwrt.org>
23
24 commit 93f310a38a1d81a4bc8fcd9bf29628bd721cf2ef
25 Author: Felix Fietkau <nbd@openwrt.org>
26 Date: Sun Apr 6 23:35:28 2014 +0200
27
28 ath9k_hw: reduce ANI firstep range for older chips
29
30 Use 0-8 instead of 0-16, which is closer to the old implementation.
31 Also drop the overwrite of the firstep_low parameter to improve
32 stability.
33
34 Signed-off-by: Felix Fietkau <nbd@openwrt.org>
35
36
37 --- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
38 +++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
39 @@ -1004,11 +1004,9 @@ static bool ar5008_hw_ani_control_new(st
40 case ATH9K_ANI_FIRSTEP_LEVEL:{
41 u32 level = param;
42
43 - value = level * 2;
44 + value = level;
45 REG_RMW_FIELD(ah, AR_PHY_FIND_SIG,
46 AR_PHY_FIND_SIG_FIRSTEP, value);
47 - REG_RMW_FIELD(ah, AR_PHY_FIND_SIG_LOW,
48 - AR_PHY_FIND_SIG_FIRSTEP_LOW, value);
49
50 if (level != aniState->firstepLevel) {
51 ath_dbg(common, ANI,
52 --- a/drivers/net/wireless/ath/ath9k/beacon.c
53 +++ b/drivers/net/wireless/ath/ath9k/beacon.c
54 @@ -312,10 +312,9 @@ static void ath9k_csa_update_vif(void *d
55
56 void ath9k_csa_update(struct ath_softc *sc)
57 {
58 - ieee80211_iterate_active_interfaces(sc->hw,
59 - IEEE80211_IFACE_ITER_NORMAL,
60 - ath9k_csa_update_vif,
61 - sc);
62 + ieee80211_iterate_active_interfaces_atomic(sc->hw,
63 + IEEE80211_IFACE_ITER_NORMAL,
64 + ath9k_csa_update_vif, sc);
65 }
66
67 void ath9k_beacon_tasklet(unsigned long data)
68 --- a/net/mac80211/main.c
69 +++ b/net/mac80211/main.c
70 @@ -203,7 +203,7 @@ void ieee80211_bss_info_change_notify(st
71 {
72 struct ieee80211_local *local = sdata->local;
73
74 - if (!changed)
75 + if (!changed || sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
76 return;
77
78 drv_bss_info_changed(local, sdata, &sdata->vif.bss_conf, changed);