mac80211: backport latest version from trunk as of r27395
[openwrt-10.03/.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: