linux/net/mac80211
Johannes Berg cb55e08dba wifi: mac80211: remove link before AP
If the AP removal timer is long, we don't really want to
remove the link immediately. However, we really should do
it _before_ the AP removes it (which happens at or after
count reaches 0), so subtract 1 from the countdown when
scheduling the timer. This causes the link removal work
to run just after the beacon with value 1 is received. If
the counter is already zero, do it immediately.

This fixes an issue where we do the removal too late and
receive a beacon from the AP that's no longer associated
with the MLD, but thus removed EHT and ML elements, and
then we disconnect instead from the whole MLD, since one
of the associated APs changed mode from EHT to HE.

Fixes: 8eb8dd2ffb ("wifi: mac80211: Support link removal using Reconfiguration ML element")
Reviewed-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240418105220.03ac4a09fa74.Ifb8c8d38e3402721a81ce5981568f47b5c5889cb@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-04-19 10:02:24 +02:00
..
tests wifi: mac80211: hide element parsing internals 2024-03-04 14:33:03 +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: check/clear fast rx for non-4addr sta VLAN changes 2024-03-25 15:23:06 +01:00
chan.c wifi: mac80211: fix idle calculation with multi-link 2024-04-19 10:02:07 +02:00
debug.h wifi: mac80211: fix mlme_link_id_dbg() 2024-03-25 15:22:53 +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: introduce a feature flag for quiet in CSA 2024-03-04 14:33:58 +01:00
debugfs.h
driver-ops.c wifi: mac80211: add ieee80211_vif_link_active() helper 2024-03-04 14:32:53 +01:00
driver-ops.h wifi: mac80211: pass link conf to abort_channel_switch 2024-03-04 14:33:56 +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: fix ieee80211_bss_*_flags kernel-doc 2024-03-25 15:23:06 +01:00
iface.c wifi: mac80211: introduce a feature flag for quiet in CSA 2024-03-04 14:33:58 +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 link id to ieee80211_gtk_rekey_add() 2024-03-04 14:31:28 +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: remove TDLS peers on link deactivation 2024-03-04 14:34:05 +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: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02: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: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02:00
mesh.h wifi: mac80211: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02:00
michael.c
michael.h
mlme.c wifi: mac80211: remove link before AP 2024-04-19 10:02:24 +02: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: hide element parsing internals 2024-03-04 14:33:03 +01:00
pm.c wifi: mac80211: remove sta_mtx 2023-09-11 11:27:22 +02:00
rate.c wifi: mac80211: don't use rate mask for scanning 2024-04-08 20:11:34 +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: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02:00
s1g.c wifi: mac80211: remove sta_mtx 2023-09-11 11:27:22 +02:00
scan.c wifi: mac80211: don't use rate mask for scanning 2024-04-08 20:11:34 +02: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: remove TDLS peers only on affected link 2024-03-04 14:34:03 +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: pass link_id to channel switch ops 2024-03-04 14:33:54 +01:00
tx.c wifi: mac80211: don't use rate mask for scanning 2024-04-08 20:11:34 +02:00
util.c wifi: mac80211: add ieee80211_vif_link_active() helper 2024-03-04 14:32:53 +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