mac80211: add back missing tx power handling fix (#12750)
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 40440
This commit is contained in:
parent
eebc673f1e
commit
134c036fc9
3 changed files with 26 additions and 4 deletions
|
@ -1,3 +1,16 @@
|
||||||
|
commit 7cbb4c021bfd1e656f5b9953a947ab3c64e4e3b0
|
||||||
|
Author: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
Date: Thu Apr 10 10:49:01 2014 +0200
|
||||||
|
|
||||||
|
mac80211: exclude AP_VLAN interfaces from tx power calculation
|
||||||
|
|
||||||
|
Their power value is initialized to zero. This patch fixes an issue
|
||||||
|
where the configured power drops to the minimum value when AP_VLAN
|
||||||
|
interfaces are created/removed.
|
||||||
|
|
||||||
|
Cc: stable@vger.kernel.org
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
|
||||||
commit 0ca13e26341733bf9577287fb04a3bef0d2f5cc9
|
commit 0ca13e26341733bf9577287fb04a3bef0d2f5cc9
|
||||||
Author: Felix Fietkau <nbd@openwrt.org>
|
Author: Felix Fietkau <nbd@openwrt.org>
|
||||||
Date: Wed Apr 9 00:07:01 2014 +0200
|
Date: Wed Apr 9 00:07:01 2014 +0200
|
||||||
|
@ -67,7 +80,16 @@ Date: Sun Apr 6 23:35:28 2014 +0200
|
||||||
void ath9k_beacon_tasklet(unsigned long data)
|
void ath9k_beacon_tasklet(unsigned long data)
|
||||||
--- a/net/mac80211/main.c
|
--- a/net/mac80211/main.c
|
||||||
+++ b/net/mac80211/main.c
|
+++ b/net/mac80211/main.c
|
||||||
@@ -203,7 +203,7 @@ void ieee80211_bss_info_change_notify(st
|
@@ -152,6 +152,8 @@ static u32 ieee80211_hw_conf_chan(struct
|
||||||
|
list_for_each_entry_rcu(sdata, &local->interfaces, list) {
|
||||||
|
if (!rcu_access_pointer(sdata->vif.chanctx_conf))
|
||||||
|
continue;
|
||||||
|
+ if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
|
||||||
|
+ continue;
|
||||||
|
power = min(power, sdata->vif.bss_conf.txpower);
|
||||||
|
}
|
||||||
|
rcu_read_unlock();
|
||||||
|
@@ -203,7 +205,7 @@ void ieee80211_bss_info_change_notify(st
|
||||||
{
|
{
|
||||||
struct ieee80211_local *local = sdata->local;
|
struct ieee80211_local *local = sdata->local;
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
*dbm = sdata->vif.bss_conf.txpower;
|
*dbm = sdata->vif.bss_conf.txpower;
|
||||||
--- a/net/mac80211/main.c
|
--- a/net/mac80211/main.c
|
||||||
+++ b/net/mac80211/main.c
|
+++ b/net/mac80211/main.c
|
||||||
@@ -158,6 +158,7 @@ static u32 ieee80211_hw_conf_chan(struct
|
@@ -160,6 +160,7 @@ static u32 ieee80211_hw_conf_chan(struct
|
||||||
|
|
||||||
if (local->hw.conf.power_level != power) {
|
if (local->hw.conf.power_level != power) {
|
||||||
changed |= IEEE80211_CONF_CHANGE_POWER;
|
changed |= IEEE80211_CONF_CHANGE_POWER;
|
||||||
|
|
|
@ -106,7 +106,7 @@
|
||||||
u32 offchannel_flag;
|
u32 offchannel_flag;
|
||||||
|
|
||||||
offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL;
|
offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL;
|
||||||
@@ -156,6 +156,12 @@ static u32 ieee80211_hw_conf_chan(struct
|
@@ -158,6 +158,12 @@ static u32 ieee80211_hw_conf_chan(struct
|
||||||
}
|
}
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@
|
||||||
if (local->hw.conf.power_level != power) {
|
if (local->hw.conf.power_level != power) {
|
||||||
changed |= IEEE80211_CONF_CHANGE_POWER;
|
changed |= IEEE80211_CONF_CHANGE_POWER;
|
||||||
local->hw.cur_power_level = power;
|
local->hw.cur_power_level = power;
|
||||||
@@ -584,6 +590,7 @@ struct ieee80211_hw *ieee80211_alloc_hw(
|
@@ -586,6 +592,7 @@ struct ieee80211_hw *ieee80211_alloc_hw(
|
||||||
IEEE80211_RADIOTAP_MCS_HAVE_BW;
|
IEEE80211_RADIOTAP_MCS_HAVE_BW;
|
||||||
local->hw.radiotap_vht_details = IEEE80211_RADIOTAP_VHT_KNOWN_GI |
|
local->hw.radiotap_vht_details = IEEE80211_RADIOTAP_VHT_KNOWN_GI |
|
||||||
IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH;
|
IEEE80211_RADIOTAP_VHT_KNOWN_BANDWIDTH;
|
||||||
|
|
Loading…
Reference in a new issue