diff options
Diffstat (limited to 'net/mac80211/vht.c')
-rw-r--r-- | net/mac80211/vht.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/mac80211/vht.c b/net/mac80211/vht.c index 0951f74e7ff5..a9549fcc5a04 100644 --- a/net/mac80211/vht.c +++ b/net/mac80211/vht.c | |||
@@ -141,7 +141,7 @@ void ieee80211_sta_set_rx_nss(struct sta_info *sta) | |||
141 | 141 | ||
142 | void ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, | 142 | void ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, |
143 | struct sta_info *sta, u8 opmode, | 143 | struct sta_info *sta, u8 opmode, |
144 | enum ieee80211_band band) | 144 | enum ieee80211_band band, bool nss_only) |
145 | { | 145 | { |
146 | struct ieee80211_local *local = sdata->local; | 146 | struct ieee80211_local *local = sdata->local; |
147 | struct ieee80211_supported_band *sband; | 147 | struct ieee80211_supported_band *sband; |
@@ -164,6 +164,9 @@ void ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, | |||
164 | changed |= IEEE80211_RC_NSS_CHANGED; | 164 | changed |= IEEE80211_RC_NSS_CHANGED; |
165 | } | 165 | } |
166 | 166 | ||
167 | if (nss_only) | ||
168 | goto change; | ||
169 | |||
167 | switch (opmode & IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK) { | 170 | switch (opmode & IEEE80211_OPMODE_NOTIF_CHANWIDTH_MASK) { |
168 | case IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ: | 171 | case IEEE80211_OPMODE_NOTIF_CHANWIDTH_20MHZ: |
169 | sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_20; | 172 | sta->cur_max_bandwidth = IEEE80211_STA_RX_BW_20; |
@@ -185,6 +188,7 @@ void ieee80211_vht_handle_opmode(struct ieee80211_sub_if_data *sdata, | |||
185 | changed |= IEEE80211_RC_NSS_CHANGED; | 188 | changed |= IEEE80211_RC_NSS_CHANGED; |
186 | } | 189 | } |
187 | 190 | ||
191 | change: | ||
188 | if (changed) | 192 | if (changed) |
189 | rate_control_rate_update(local, sband, sta, changed); | 193 | rate_control_rate_update(local, sband, sta, changed); |
190 | } | 194 | } |