aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/550-mac80211_ht_change_rate_update.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-05-16 21:50:26 +0000
committerFelix Fietkau <nbd@openwrt.org>2011-05-16 21:50:26 +0000
commitc2bee5a64a2c1aeb45e05474ecf4300f43bc6afa (patch)
tree86dc37c189ca584d51990f49b08c60ed9bcb0d64 /package/mac80211/patches/550-mac80211_ht_change_rate_update.patch
parent894d50da25d002530d83907f0b5015b76d92e912 (diff)
downloadupstream-c2bee5a64a2c1aeb45e05474ecf4300f43bc6afa.tar.gz
upstream-c2bee5a64a2c1aeb45e05474ecf4300f43bc6afa.tar.bz2
upstream-c2bee5a64a2c1aeb45e05474ecf4300f43bc6afa.zip
mac80211: update to 2011-05-13
SVN-Revision: 26912
Diffstat (limited to 'package/mac80211/patches/550-mac80211_ht_change_rate_update.patch')
-rw-r--r--package/mac80211/patches/550-mac80211_ht_change_rate_update.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/package/mac80211/patches/550-mac80211_ht_change_rate_update.patch b/package/mac80211/patches/550-mac80211_ht_change_rate_update.patch
new file mode 100644
index 0000000000..d2f1982339
--- /dev/null
+++ b/package/mac80211/patches/550-mac80211_ht_change_rate_update.patch
@@ -0,0 +1,35 @@
+--- a/net/mac80211/main.c
++++ b/net/mac80211/main.c
+@@ -239,7 +239,9 @@ void ieee80211_bss_info_change_notify(st
+ u32 changed)
+ {
+ struct ieee80211_local *local = sdata->local;
++ struct ieee80211_supported_band *sband;
+ static const u8 zero[ETH_ALEN] = { 0 };
++ struct sta_info *sta;
+
+ if (!changed)
+ return;
+@@ -269,6 +271,22 @@ void ieee80211_bss_info_change_notify(st
+
+ switch (sdata->vif.type) {
+ case NL80211_IFTYPE_AP:
++ if (!(changed & BSS_CHANGED_HT))
++ break;
++
++ sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
++ rcu_read_lock();
++ list_for_each_entry(sta, &local->sta_list, list) {
++ if (sta->sdata != sdata &&
++ (!sdata->bss || sta->sdata->bss != sdata->bss))
++ continue;
++
++ rate_control_rate_update(local, sband, sta,
++ IEEE80211_RC_HT_CHANGED,
++ local->_oper_channel_type);
++ }
++ rcu_read_unlock();
++ break;
+ case NL80211_IFTYPE_ADHOC:
+ case NL80211_IFTYPE_WDS:
+ case NL80211_IFTYPE_MESH_POINT: