diff options
author | Johannes Berg <johannes.berg@intel.com> | 2024-02-28 14:01:57 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2024-03-04 16:25:27 +0300 |
commit | a8bca3e9371dc5e276af4168be099b2a05554c2a (patch) | |
tree | d200841155a604bc46f1e9527c2a0b8252ed8022 /net/mac80211/cfg.c | |
parent | b73229331ed5dad6479cc3ae9c61d861d5c1f2a2 (diff) | |
download | linux-a8bca3e9371dc5e276af4168be099b2a05554c2a.tar.xz |
wifi: mac80211: track capability/opmode NSS separately
We're currently tracking rx_nss for each station, and that
is meant to be initialized to the capability NSS and later
reduced by the operating mode notification NSS.
However, we're mixing up capabilities and operating mode
NSS in the same variable. This forces us to recalculate
the NSS capability on operating mode notification RX,
which is a bit strange; due to the previous fix I had to
never keep rx_nss as zero, it also means that the capa is
never taken into account properly.
Fix all this by storing the capability value, that can be
recalculated unconditionally whenever needed, and storing
the operating mode notification NSS separately, taking it
into account when assigning the final rx_nss value.
Cc: stable@vger.kernel.org
Fixes: dd6c064cfc3f ("wifi: mac80211: set station RX-NSS on reconfig")
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240228120157.0e1c41924d1d.I0acaa234e0267227b7e3ef81a59117c8792116bc@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r-- | net/mac80211/cfg.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 0744113f3535..3aa96898a250 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -1867,7 +1867,7 @@ static int sta_link_apply_parameters(struct ieee80211_local *local, sband->band); } - ieee80211_sta_set_rx_nss(link_sta); + ieee80211_sta_init_nss(link_sta); return ret; } |