diff options
author | Johannes Berg <johannes.berg@intel.com> | 2016-10-20 08:52:50 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2017-01-11 16:35:05 +0100 |
commit | d2941df8fbd9708035d66d889ada4d3d160170ce (patch) | |
tree | b12b6d2813a2361e7556d74c1e2d6b543a0817b8 /net/mac80211/vht.c | |
parent | mac80211: calculate min channel width correctly (diff) | |
download | linux-d2941df8fbd9708035d66d889ada4d3d160170ce.tar.xz linux-d2941df8fbd9708035d66d889ada4d3d160170ce.zip |
mac80211: recalculate min channel width on VHT opmode changes
When an associated station changes its VHT operating mode this
can/will affect the bandwidth it's using, and consequently we
must recalculate the minimum bandwidth we need to use. Failure
to do so can lead to one of two scenarios:
1) we use a too high bandwidth, this is benign
2) we use a too narrow bandwidth, causing rate control and
actual PHY configuration to be out of sync, which can in
turn cause problems/crashes
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/vht.c')
-rw-r--r-- | net/mac80211/vht.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/mac80211/vht.c b/net/mac80211/vht.c index 6832bf6ab69f..43e45bb660bc 100644 --- a/net/mac80211/vht.c +++ b/net/mac80211/vht.c @@ -527,8 +527,10 @@ void ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, u32 changed = __ieee80211_vht_handle_opmode(sdata, sta, opmode, band); - if (changed > 0) + if (changed > 0) { + ieee80211_recalc_min_chandef(sdata); rate_control_rate_update(local, sband, sta, changed); + } } void ieee80211_get_vht_mask_from_cap(__le16 vht_cap, |