mac80211: update to 2011-08-10
[openwrt/svn-archive/archive.git] / package / mac80211 / patches / 521-mac80211_ht_change_rate_update.patch
1 --- a/net/mac80211/main.c
2 +++ b/net/mac80211/main.c
3 @@ -239,7 +239,9 @@ void ieee80211_bss_info_change_notify(st
4 u32 changed)
5 {
6 struct ieee80211_local *local = sdata->local;
7 + struct ieee80211_supported_band *sband;
8 static const u8 zero[ETH_ALEN] = { 0 };
9 + struct sta_info *sta;
10
11 if (!changed)
12 return;
13 @@ -269,6 +271,22 @@ void ieee80211_bss_info_change_notify(st
14
15 switch (sdata->vif.type) {
16 case NL80211_IFTYPE_AP:
17 + if (!(changed & BSS_CHANGED_HT))
18 + break;
19 +
20 + sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
21 + rcu_read_lock();
22 + list_for_each_entry(sta, &local->sta_list, list) {
23 + if (sta->sdata != sdata &&
24 + (!sdata->bss || sta->sdata->bss != sdata->bss))
25 + continue;
26 +
27 + rate_control_rate_update(local, sband, sta,
28 + IEEE80211_RC_HT_CHANGED,
29 + local->_oper_channel_type);
30 + }
31 + rcu_read_unlock();
32 + break;
33 case NL80211_IFTYPE_ADHOC:
34 case NL80211_IFTYPE_WDS:
35 case NL80211_IFTYPE_MESH_POINT: