linux/net/mac80211
Johannes Berg 05d4bd28e5 wifi: mac80211: track capability/opmode NSS separately
[ Upstream commit a8bca3e937 ]

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: dd6c064cfc ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-03 15:32:11 +02:00
..
tests wifi: mac80211: kunit: extend MFP tests 2024-01-03 15:35:19 +01:00
aead_api.c mac80211: Check crypto_aead_encrypt for errors 2021-03-16 21:20:41 +01:00
aead_api.h
aes_ccm.h
aes_cmac.c mac80211: aes_cmac: check crypto_shash_setkey() return value 2021-04-19 12:01:40 +02:00
aes_cmac.h
aes_gcm.h
aes_gmac.c mac80211: Check crypto_aead_encrypt for errors 2021-03-16 21:20:41 +01:00
aes_gmac.h
agg-rx.c wifi: mac80211: remove ampdu_mlme.mtx 2023-09-11 11:27:22 +02:00
agg-tx.c wifi: mac80211: fix BA session teardown race 2023-09-11 11:27:23 +02:00
airtime.c wifi: mac80211: Sanity check tx bitrate if not provided by driver 2023-09-13 16:24:05 +02:00
cfg.c wifi: mac80211: track capability/opmode NSS separately 2024-04-03 15:32:11 +02:00
chan.c wifi: mac80211: Replace ENOTSUPP with EOPNOTSUPP 2023-12-12 10:37:01 +01:00
debug.h wifi: mac80211: Add getter functions for vif MLD state 2023-06-14 12:20:08 +02:00
debugfs_key.c wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
debugfs_key.h mac80211: Support BIGTK configuration for Beacon protection 2020-02-24 10:35:57 +01:00
debugfs_netdev.c wifi: mac80211: fix driver debugfs for vif type change 2024-02-02 13:09:55 +01:00
debugfs_netdev.h wifi: mac80211: fix driver debugfs for vif type change 2024-02-02 13:09:55 +01:00
debugfs_sta.c wifi: mac80211: fix spelling typo in comment 2024-01-03 15:34:56 +01:00
debugfs_sta.h wifi: mac80211: add API to show the link STAs in debugfs 2022-10-07 15:23:41 +02:00
debugfs.c wifi: mac80211: add a flag to disallow puncturing 2023-12-12 10:37:00 +01:00
debugfs.h
driver-ops.c wifi: mac80211: add/remove driver debugfs entries as appropriate 2023-12-19 13:08:00 +01:00
driver-ops.h wifi: mac80211: add a driver callback to check active_links 2023-12-21 20:35:15 +01:00
drop.h wifi: mac80211: expand __ieee80211_data_to_8023() status 2023-09-26 09:16:47 +02:00
eht.c wifi: mac80211: add helpers to access sband iftype data 2023-06-14 11:57:29 +02:00
ethtool.c wifi: mac80211: ethtool: always hold wiphy mutex 2023-09-25 09:00:39 +02:00
fils_aead.c wifi: mac80211: Do not include crypto/algapi.h 2023-08-24 08:42:36 +02:00
fils_aead.h
he.c wifi: mac80211: add helpers to access sband iftype data 2023-06-14 11:57:29 +02:00
ht.c wifi: mac80211: handle 320 MHz in ieee80211_ht_cap_ie_to_sta_ht_cap 2023-11-24 18:42:18 +01:00
ibss.c wifi: mac80211: drop spurious WARN_ON() in ieee80211_ibss_csa_beacon() 2023-12-12 10:37:01 +01:00
ieee80211_i.h wifi: mac80211: track capability/opmode NSS separately 2024-04-03 15:32:11 +02:00
iface.c wifi: mac80211: fix driver debugfs for vif type change 2024-02-02 13:09:55 +01:00
Kconfig wifi: cfg80211/mac80211: remove dependency on non-existing option 2024-01-18 14:50:01 +01:00
key.c wifi: mac80211: fix another key installation error path 2023-10-23 12:29:54 +02:00
key.h wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
led.c leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value 2023-05-25 12:16:27 +01:00
led.h leds: Change led_trigger_blink[_oneshot]() delay parameters to pass-by-value 2023-05-25 12:16:27 +01:00
link.c wifi: mac80211: add a driver callback to check active_links 2023-12-21 20:35:15 +01:00
main.c wifi: mac80211: Add support for WBRF features 2023-12-12 10:36:59 +01:00
Makefile wifi: mac80211: Add support for WBRF features 2023-12-12 10:36:59 +01:00
mesh_hwmp.c wifi: mac80211: Replace ENOTSUPP with EOPNOTSUPP 2023-12-12 10:37:01 +01:00
mesh_pathtbl.c wifi: mac80211: Replace ENOTSUPP with EOPNOTSUPP 2023-12-12 10:37:01 +01:00
mesh_plink.c wifi: mac80211: mesh_plink: fix matches_local logic 2023-12-12 10:14:57 +01:00
mesh_ps.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
mesh_sync.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
mesh.c wifi: mac80211: mesh: fix some kdoc warnings 2023-10-23 11:43:27 +02:00
mesh.h wifi: mac80211: mesh: Remove unused function declaration mesh_ids_set_default() 2023-08-22 21:40:40 +02:00
michael.c
michael.h
mlme.c wifi: mac80211: use deflink and fix typo in link ID check 2024-03-26 18:16:34 -04:00
ocb.c wifi: cfg80211: remove scan_width support 2023-09-13 11:10:50 +02:00
offchannel.c wifi: mac80211: fix a expired vs. cancel race in roc 2023-10-23 11:45:17 +02:00
pm.c wifi: mac80211: remove sta_mtx 2023-09-11 11:27:22 +02:00
rate.c wifi: mac80211: track capability/opmode NSS separately 2024-04-03 15:32:11 +02:00
rate.h wifi: mac80211: make ieee80211_check_rate_mask() link-aware 2022-07-15 11:43:21 +02:00
rc80211_minstrel_ht_debugfs.c mac80211: minstrel_ht: show sampling rates in debugfs 2021-02-12 08:58:11 +01:00
rc80211_minstrel_ht.c wifi: mac80211: remove shifted rate support 2023-09-13 11:22:16 +02:00
rc80211_minstrel_ht.h wifi: mac80211: minstrel_ht: remove unused has_mrr member from struct minstrel_priv 2022-10-07 15:25:05 +02:00
rx.c wifi: mac80211: add kunit tests for public action handling 2024-01-03 15:35:09 +01:00
s1g.c wifi: mac80211: remove sta_mtx 2023-09-11 11:27:22 +02:00
scan.c wifi: mac80211: accept broadcast probe responses on 6 GHz 2024-02-02 13:11:59 +01:00
spectmgmt.c wifi: mac80211: use bandwidth indication element for CSA 2023-09-25 09:12:32 +02:00
sta_info.c wireless fixes for v6.8-rc2 2024-01-23 08:38:13 -08:00
sta_info.h wifi: mac80211: track capability/opmode NSS separately 2024-04-03 15:32:11 +02:00
status.c wifi: mac80211: rename ieee80211_tx_status() to ieee80211_tx_status_skb() 2023-10-23 12:26:51 +02:00
tdls.c wifi: mac80211: Replace ENOTSUPP with EOPNOTSUPP 2023-12-12 10:37:01 +01:00
tkip.c mac80211: Fix TKIP replay protection immediately after key setup 2020-01-15 09:52:12 +01:00
tkip.h
trace_msg.h mac80211: tracing: Use the new __vstring() helper 2022-07-24 19:11:17 -04:00
trace.c
trace.h wifi: mac80211: add a driver callback to check active_links 2023-12-21 20:35:15 +01:00
tx.c wifi: mac80211: reload info pointer in ieee80211_tx_dequeue() 2024-02-08 13:16:22 +01:00
util.c wifi: mac80211: rework RX timestamp flags 2023-12-21 20:35:15 +01:00
vht.c wifi: mac80211: track capability/opmode NSS separately 2024-04-03 15:32:11 +02:00
wbrf.c wifi: mac80211: Drop WBRF debugging statements 2024-01-26 10:43:33 +01:00
wep.c wifi: mac80211: remove RX_DROP_UNUSABLE 2023-09-26 09:16:42 +02:00
wep.h mac80211: make ieee80211_wep_init() return void 2020-02-07 12:40:34 +01:00
wme.c wifi: mac80211: fix qos on mesh interfaces 2023-03-22 13:46:38 +01:00
wme.h wifi: mac80211: Drop support for TX push path 2022-10-10 11:06:14 +02:00
wpa.c wifi: mac80211: remove RX_DROP_UNUSABLE 2023-09-26 09:16:42 +02:00
wpa.h wifi: mac80211: remove cipher scheme support 2022-06-10 15:35:53 +02:00