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