linux/net/mac80211
Johannes Berg a8bca3e937 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: 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>
2024-03-04 14:25:27 +01:00
..
tests wifi: mac80211: clean up connection process 2024-02-08 12:58:26 +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: introduce 'channel request' 2024-02-08 13:07:34 +01: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-03-04 14:25:27 +01:00
chan.c wifi: cfg80211/mac80211: move puncturing into chandef 2024-02-08 15:00:39 +01:00
debug.h wifi: mac80211: clean up connection process 2024-02-08 12:58:26 +01:00
debugfs_key.c wifi: mac80211: remove key_mtx 2023-09-11 11:27:22 +02:00
debugfs_key.h
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: process and save negotiated TID to Link mapping request 2024-01-26 09:39:48 +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: introduce 'channel request' 2024-02-08 13:07:34 +01:00
ibss.c wifi: mac80211: flush only stations using requests links 2024-02-12 21:13:57 +01:00
ieee80211_i.h wifi: mac80211: track capability/opmode NSS separately 2024-03-04 14:25:27 +01:00
iface.c wifi: mac80211: flush only stations using requests links 2024-02-12 21:13:57 +01:00
Kconfig wifi: cfg80211/mac80211: remove dependency on non-existing option 2024-01-18 14:50:01 +01:00
key.c wifi: mac80211: add support for SPP A-MSDUs 2024-01-26 09:39:49 +01: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: start and finalize channel switch on link basis 2024-02-08 15:00:45 +01:00
main.c wifi: mac80211: don't use sband->band early 2024-02-08 15:00:44 +01:00
Makefile wifi: mac80211: move element parsing to a new file 2024-02-08 15:00:43 +01:00
mesh_hwmp.c wifi: mac80211: Replace ENOTSUPP with EOPNOTSUPP 2023-12-12 10:37:01 +01:00
mesh_pathtbl.c wifi: mac80211: clean up assignments to pointer cache. 2024-02-21 15:19:03 +01:00
mesh_plink.c wifi: mac80211: simplify adding supported rates 2024-02-08 15:00:43 +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: flush only stations using requests links 2024-02-12 21:13:57 +01:00
mesh.h wifi: mac80211: add missing kernel-doc for fast_tx_check 2024-02-08 15:00:44 +01:00
michael.c
michael.h
mlme.c wifi: mac80211: check link exists before use 2024-03-04 14:24:15 +01:00
ocb.c wifi: mac80211: flush only stations using requests links 2024-02-12 21:13:57 +01:00
offchannel.c wifi: mac80211: simplify non-chanctx drivers 2024-02-08 12:58:32 +01:00
parse.c wifi: mac80211: move element parsing to a new file 2024-02-08 15:00:43 +01: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-03-04 14:25:27 +01: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: remove gfp parameter from ieee80211_obss_color_collision_notify 2024-02-12 21:07:30 +01:00
s1g.c wifi: mac80211: remove sta_mtx 2023-09-11 11:27:22 +02:00
scan.c wifi: mac80211: start building elements in SKBs 2024-02-08 15:00:43 +01:00
spectmgmt.c wifi: mac80211: refactor STA CSA parsing flows 2024-02-08 15:00:45 +01:00
sta_info.c wifi: mac80211: flush only stations using requests links 2024-02-12 21:13:57 +01:00
sta_info.h wifi: mac80211: track capability/opmode NSS separately 2024-03-04 14:25:27 +01: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: convert ieee80211_ie_build_eht_cap() to SKB use 2024-02-08 15:00:44 +01:00
tkip.c
tkip.h
trace_msg.h wifi: mac80211: remove unused MAX_MSG_LEN define 2024-02-08 12:50:09 +01:00
trace.c
trace.h wifi: mac80211: support wider bandwidth OFDMA config 2024-02-08 13:07:37 +01:00
tx.c wifi: mac80211: check beacon countdown is complete on per link basis 2024-02-21 15:19:03 +01:00
util.c wifi: mac80211: fix supported rate masking in scan 2024-03-04 14:24:27 +01:00
vht.c wifi: mac80211: track capability/opmode NSS separately 2024-03-04 14:25:27 +01: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
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: add support for SPP A-MSDUs 2024-01-26 09:39:49 +01:00
wpa.h wifi: mac80211: remove cipher scheme support 2022-06-10 15:35:53 +02:00