mirror-linux/net/mac80211
Miri Korenblit c07981af55 wifi: mac80211: add the virtual monitor after reconfig complete
In reconfig we add the virtual monitor in 2 cases:
1. If we are resuming (it was deleted on suspend)
2. If it was added after an error but before the reconfig
   (due to the last non-monitor interface removal).

In the second case, the removal of the non-monitor interface will succeed
but the addition of the virtual monitor will fail, so we add it in the
reconfig.

The problem is that we mislead the driver to think that this is an existing
interface that is getting re-added - while it is actually a completely new
interface from the drivers' point of view.

Some drivers act differently when a interface is re-added. For example, it
might not initialize things because they were already initialized.
Such drivers will - in this case - be left with a partialy initialized vif.

To fix it, add the virtual monitor after reconfig_complete, so the
driver will know that this is a completely new interface.

Fixes: 3c3e21e744 ("mac80211: destroy virtual monitor interface across suspend")
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250709233451.648d39b041e8.I2e37b68375278987e303d6c00cc5f3d8334d2f96@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-07-10 13:27:14 +02:00
..
tests wifi: mac80211: tests: add tests for ieee80211_determine_chan_mode 2025-02-11 11:59:07 +01:00
Kconfig mac80211: MAC80211_MESSAGE_TRACING should depend on TRACING 2024-10-08 21:14:57 +02:00
Makefile wifi: mac80211: move element parsing to a new file 2024-02-08 15:00:43 +01:00
aead_api.c
aead_api.h
aes_ccm.h
aes_cmac.c
aes_cmac.h
aes_gcm.h
aes_gmac.c
aes_gmac.h
agg-rx.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
agg-tx.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
airtime.c wifi: mac80211: introduce EHT rate support in AQL airtime 2024-09-06 12:58:36 +02:00
cfg.c wifi: mac80211: reject VHT opmode for unsupported channel widths 2025-07-07 10:45:21 +02:00
chan.c wifi: mac80211: Create separate links for VLAN interfaces 2025-04-23 16:56:15 +02:00
debug.h wifi: mac80211: don't WARN for late channel/color switch 2025-06-17 14:30:06 +02:00
debugfs.c wifi: mac80211: add strict mode disabling workarounds 2025-02-11 11:59:06 +01:00
debugfs.h
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 Driver core and debugfs updates 2025-01-28 12:25:12 -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 Revert "mac80211: Dynamically set CoDel parameters per station" 2025-04-23 15:22:11 +02:00
debugfs_sta.h
driver-ops.c wifi: mac80211: Fix sparse warning for monitor_sdata 2025-02-26 15:10:38 +01:00
driver-ops.h wifi: mac80211: set ieee80211_prep_tx_info::link_id upon Auth Rx 2025-02-11 11:59:07 +01:00
drop.h wifi: mac80211: Drop cooked monitor support 2025-02-11 11:58:17 +01:00
eht.c wifi: mac80211: fix MPDU length parsing for EHT 5/6 GHz 2025-03-12 09:29:14 +01:00
ethtool.c wifi: mac80211: Add counter for all monitor interfaces 2025-02-26 15:44:15 +01:00
fils_aead.c
fils_aead.h
he.c wifi: mac80211: add some support for RX OMI power saving 2025-01-13 15:26:43 +01:00
ht.c wifi: mac80211: Support EHT 1024 aggregation size in TX 2024-11-12 13:41:45 +01:00
ibss.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
ieee80211_i.h wifi: mac80211: restructure tx profile retrieval for MLO MBSSID 2025-04-23 18:03:53 +02:00
iface.c wifi: mac80211: always initialize sdata::key_list 2025-07-10 13:26:13 +02:00
key.c wifi: mac80211: set key link ID to the deflink one 2025-01-13 15:34:09 +01:00
key.h
led.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
led.h
link.c wifi: mac80211: finish link init before RCU publish 2025-06-24 15:16:43 +02:00
main.c wifi: mac80211: Set n_channels after allocating struct cfg80211_scan_request 2025-05-15 13:20:33 +02:00
mesh.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
mesh.h wifi: mac80211: split mesh fast tx cache into local/proxied/forwarded 2024-04-17 09:21:32 +02:00
mesh_hwmp.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
mesh_pathtbl.c wifi: mac80211: Replace __get_unaligned_cpu32 in mesh_pathtbl.c 2025-04-23 15:28:50 +02:00
mesh_plink.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
mesh_ps.c
mesh_sync.c wifi: mac80211, cfg80211: miscellaneous spelling fixes 2024-10-08 21:52:09 +02:00
michael.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
michael.h
mlme.c wifi: mac80211: Fix uninitialized variable with __free() in ieee80211_ml_epcs() 2025-07-09 11:42:16 +02:00
ocb.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
offchannel.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
parse.c wifi: mac80211: fix non-transmitted BSSID profile search 2025-07-07 10:42:48 +02:00
pm.c treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
rate.c Revert "mac80211: Dynamically set CoDel parameters per station" 2025-04-23 15:22:11 +02:00
rate.h wifi: mac80211: convert debugfs files to short fops 2024-10-23 16:47:07 +02:00
rc80211_minstrel_ht.c wifi: cfg80211/mac80211: remove more 5/10 MHz code 2025-04-23 15:21:32 +02:00
rc80211_minstrel_ht.h
rc80211_minstrel_ht_debugfs.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
rx.c wifi: mac80211: drop invalid source address OCB frames 2025-06-17 14:29:49 +02:00
s1g.c
scan.c wifi: cfg80211/mac80211: correctly parse S1G beacon optional elements 2025-06-05 11:32:16 +02:00
spectmgmt.c wifi: mac80211: Avoid -Wflex-array-member-not-at-end warnings 2025-04-23 15:20:20 +02:00
sta_info.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
sta_info.h Revert "mac80211: Dynamically set CoDel parameters per station" 2025-04-23 15:22:11 +02:00
status.c wifi: mac80211: restore monitor for outgoing frames 2025-04-23 14:44:22 +02:00
tdls.c wifi: cfg80211/mac80211: remove more 5/10 MHz code 2025-04-23 15:21:32 +02:00
tkip.c Merge net-next/main to resolve conflicts 2024-10-09 08:59:22 +02:00
tkip.h
trace.c
trace.h wifi: mac80211: improve stop/wake queue tracing 2025-01-13 15:26:44 +01:00
trace_msg.h wifi: mac80211: remove unused MAX_MSG_LEN define 2024-02-08 12:50:09 +01:00
tx.c wifi: mac80211: don't WARN for late channel/color switch 2025-06-17 14:30:06 +02:00
util.c wifi: mac80211: add the virtual monitor after reconfig complete 2025-07-10 13:27:14 +02:00
vht.c wifi: mac80211: add some support for RX OMI power saving 2025-01-13 15:26:43 +01: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
wme.h
wpa.c wifi: mac80211: remove misleading j_0 construction parts 2024-10-23 16:46:58 +02:00
wpa.h