summaryrefslogtreecommitdiffstats
path: root/net/mac80211/vht.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2016-10-20 08:52:50 +0200
committerJohannes Berg <johannes.berg@intel.com>2017-01-11 16:35:05 +0100
commitd2941df8fbd9708035d66d889ada4d3d160170ce (patch)
treeb12b6d2813a2361e7556d74c1e2d6b543a0817b8 /net/mac80211/vht.c
parentmac80211: calculate min channel width correctly (diff)
downloadlinux-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.c4
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,