linux/net/mac80211
Pagadala Yesu Anjaneyulu d0e69d9afa wifi: mac80211: ibss: wait for in-flight TX on disconnect
While leaving an IBSS in ieee80211_ibss_disconnect() mac80211 flushes
stations, turns the carrier off and immediately tells the driver to
leave as well. While there may be synchronize_net() in station flush
and in this code later, packets can still be transmitted due to
cross-CPU race conditions after carrier off is set.
Therefore, it's possible for a race to happen where a TX to the
driver occurs while or after telling it to leave the IBSS. This can
be confusing to drivers, and in the case of iwlwifi leads to an
attempt to use invalid queues.

Move netif_carrier_off() to occur before sta_info_flush() during
IBSS disconnect, and add synchronize_net() if flushing didn't,
so that the synchronize_net() always happens between turning the
carrier off and telling the driver, avoiding this race.

Signed-off-by: Pagadala Yesu Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260706223751.da1ce439cc93.If5cf482f87ab98ce66dd48724e24c81fed236d3f@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2026-07-07 09:28:55 +02:00
..
tests wifi: mac80211: parse and apply UHR DBE channel 2026-06-03 14:11:58 +02:00
aead_api.c
aead_api.h
aes_ccm.h
aes_cmac.c wifi: mac80211: Use AES-CMAC library in ieee80211_aes_cmac() 2026-03-09 13:27:21 -07:00
aes_cmac.h wifi: mac80211: Use AES-CMAC library in ieee80211_aes_cmac() 2026-03-09 13:27:21 -07:00
aes_gcm.h
aes_gmac.c wifi: mac80211: utilize the newly defined CMAC constants 2025-11-20 11:56:19 +01:00
aes_gmac.h wifi: mac80211: utilize the newly defined CMAC constants 2025-11-20 11:56:19 +01:00
agg-rx.c wifi: mac80211: fold tid_ampdu_rx allocations into a flexible array 2026-06-05 09:59:30 +02:00
agg-tx.c wifi: mac80211: allow block ack agreements in NAN Data 2026-04-07 15:36:04 +02:00
airtime.c wifi: mac80211: introduce EHT rate support in AQL airtime 2024-09-06 12:58:36 +02:00
ap.c wifi: mac80211: AP: handle DBE for clients 2026-06-03 14:11:58 +02:00
cfg.c wifi: mac80211: fix fils_discovery double free on alloc failure 2026-07-06 14:11:06 +02:00
chan.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
debug.h wifi: mac80211: don't WARN for late channel/color switch 2025-06-17 14:30:06 +02:00
debugfs_key.c wifi: mac80211: Clean up debugfs_key deadcode 2025-01-13 13:51:19 +01:00
debugfs_key.h wifi: mac80211: Clean up debugfs_key deadcode 2025-01-13 13:51:19 +01:00
debugfs_netdev.c kernel.h: drop hex.h and update all hex.h users 2026-01-20 19:44:19 -08: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: Remove redundant rcu_read_lock/unlock() in spin_lock 2025-09-19 11:48:14 +02: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: use kstrtobool_from_user() in debugfs callbacks 2026-04-28 09:31:27 +02:00
debugfs.h
driver-ops.c wifi: mac80211: make monitor link info check more specific 2025-11-11 11:05:19 +01:00
driver-ops.h wifi: mac80211: add NAN peer schedule support 2026-04-07 15:36:03 +02:00
drop.h wifi: mac80211: remove RX_DROP 2026-01-19 10:21:47 +01:00
eht.c wifi: mac80211: move frame RX handling to type files 2026-05-05 14:49:01 +02:00
ethtool.c wifi: mac80211: add tx_handlers_drop statistics to ethtool 2025-09-10 15:04:27 +02:00
fils_aead.c wifi: mac80211: Use AES-CMAC library in aes_s2v() 2026-03-09 13:27:21 -07:00
fils_aead.h
he.c wifi: mac80211: refactor link STA bandwidth update 2026-06-03 14:11:58 +02:00
ht.c wifi: mac80211: refactor link STA bandwidth update 2026-06-03 14:11:58 +02:00
ibss.c wifi: mac80211: ibss: wait for in-flight TX on disconnect 2026-07-07 09:28:55 +02:00
ieee80211_i.h wifi: mac80211: AP: handle DBE for clients 2026-06-03 14:11:58 +02:00
iface.c wifi: mac80211: free AP_VLAN bc_buf SKBs outside IRQ lock 2026-07-07 09:23:23 +02:00
Kconfig wifi: mac80211: Use AES-CMAC library in aes_s2v() 2026-03-09 13:27:21 -07:00
key.c wifi: mac80211: allow cipher change on NAN_DATA interfaces 2026-05-20 12:03:38 +02:00
key.h wifi: mac80211: Use AES-CMAC library in ieee80211_aes_cmac() 2026-03-09 13:27:21 -07:00
led.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08: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: unify link STA removal in vif link removal 2026-06-03 14:11:56 +02:00
main.c wifi: mac80211: fix memory leak in ieee80211_register_hw() 2026-07-07 09:25:05 +02:00
Makefile wifi: mac80211: move frame RX handling to type files 2026-05-05 14:49:01 +02:00
mesh_hwmp.c wifi: mac80211: Fix -Wc23-extensions in hwmp_route_info_get() 2026-06-05 09:55:08 +02:00
mesh_pathtbl.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
mesh_plink.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
mesh_ps.c wifi: mac80211: support parsing S1G TIM PVB 2025-09-04 11:19:01 +02:00
mesh_sync.c wifi: mac80211: export ieee80211_calculate_rx_timestamp 2026-04-07 15:36:02 +02:00
mesh.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
mesh.h wifi: mac80211: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02:00
mlme.c wifi: mac80211: validate deauth frame length before reason access 2026-07-06 14:11:11 +02:00
nan.c wifi: mac80211: allocate backup ieee80211_nan_sched_cfg off stack 2026-07-06 10:07:11 +02:00
ocb.c wifi: mac80211: clean up initial STA NSS/bandwidth handling 2026-04-28 09:27:46 +02:00
offchannel.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
parse.c wifi: mac80211: always expose multi-link element 2026-06-03 14:11:57 +02:00
pm.c wifi: cfg80211/mac80211: Add support to get radio index 2025-06-24 15:19:27 +02:00
rate.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
rate.h wifi: mac80211: convert debugfs files to short fops 2024-10-23 16:47:07 +02:00
rc80211_minstrel_ht_debugfs.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
rc80211_minstrel_ht.c wifi: mac80211: remove unused variables in minstrel_ht_alloc_sta 2026-04-07 15:40:25 +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: validate extension-frame layout before RX 2026-07-06 14:11:09 +02:00
s1g.c wifi: mac80211: add support for NDP ADDBA/DELBA for S1G 2026-03-06 10:52:11 +01:00
scan.c wifi: mac80211: export ieee80211_calculate_rx_timestamp 2026-04-07 15:36:02 +02:00
spectmgmt.c wifi: mac80211: remove 5/10 MHz channel code 2026-06-03 14:07:06 +02:00
sta_info.c wifi: mac80211: defer link RX stats percpu free to RCU 2026-07-06 14:11:07 +02:00
sta_info.h wifi: mac80211: fold tid_ampdu_rx allocations into a flexible array 2026-06-05 09:59:30 +02:00
status.c wifi: mac80211: parse and apply UHR DBE channel 2026-06-03 14:11:58 +02:00
tdls.c wifi: mac80211: clarify per-STA bandwidth handling 2026-04-28 09:29:02 +02:00
tkip.c Merge net-next/main to resolve conflicts 2024-10-09 08:59:22 +02:00
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: add NPCA to chandef tracing 2026-05-05 14:49:03 +02:00
tx.c wifi: mac80211: free ack status frame on TX header build failure 2026-07-06 14:11:07 +02:00
uhr.c wifi: mac80211: update UHR capabilities field order 2026-05-05 14:49:01 +02:00
util.c wifi: mac80211: validate extension-frame layout before RX 2026-07-06 14:11:09 +02:00
vht.c wifi: mac80211: clarify per-STA bandwidth handling 2026-04-28 09:29:02 +02:00
wbrf.c wifi: mac80211: use cfg80211_chandef_get_width() 2025-03-12 09:50:27 +01:00
wep.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04: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 Networking changes for 7.1. 2026-04-14 18:36:10 -07:00
wpa.h wifi: mac80211: refactor CMAC packet handlers 2025-11-20 11:56:19 +01:00