Currently, Dynamic Frequency Selection (DFS) and its related radar events are supported only for non-MLO case where deflink (or link_id 0) is always considered. However, with MLO in place, there is need to handle DFS in per-link manner instead of always handling it on per device. Add support to handle DFS interference related events per-link basis. Aditya Kumar Singh (8): Revert "wifi: mac80211: move radar detect work to sdata" wifi: mac80211: remove label usage in ieee80211_start_radar_detection() wifi: trace: unlink rdev_end_cac trace event from wiphy_netdev_evt class wifi: cfg80211: move DFS related members to links[] in wireless_dev wifi: cfg80211: handle DFS per link wifi: mac80211: handle DFS per link wifi: cfg80211/mac80211: use proper link ID for DFS wifi: mac80211: handle ieee80211_radar_detected() for MLO --- v5: * No changes in 1-7. * Fixed sparse warning in 8. v4: * Rebased on ToT * No other changes in [1-7] * Removed local linked list usage and refactored code to directly cancel and notify while iterating over radar detected channel context [8] v3: * Rebased on ToT * 12-digit sha1 in [1/8] * moved trivial preparation patches on top. * changed radar detection handling logic in [8/8] * minor commit text changes in in [5/8], [6/8] * removed patch [v2 9/9] v2: * No changes except patch [6/9]. * In [6/9], removed usage of label and directly used return statements --- drivers/net/wireless/ath/ath10k/debug.c | 4 +- drivers/net/wireless/ath/ath10k/mac.c | 2 +- drivers/net/wireless/ath/ath10k/wmi.c | 2 +- drivers/net/wireless/ath/ath11k/wmi.c | 2 +- drivers/net/wireless/ath/ath12k/wmi.c | 2 +- drivers/net/wireless/ath/ath9k/dfs.c | 2 +- drivers/net/wireless/ath/ath9k/dfs_debug.c | 2 +- drivers/net/wireless/marvell/mwifiex/11h.c | 11 +-- .../net/wireless/marvell/mwifiex/cfg80211.c | 6 +- .../net/wireless/mediatek/mt76/mt7615/mcu.c | 2 +- .../net/wireless/mediatek/mt76/mt76x02_dfs.c | 4 +- .../net/wireless/mediatek/mt76/mt7915/mcu.c | 2 +- .../net/wireless/mediatek/mt76/mt7996/mcu.c | 2 +- .../net/wireless/quantenna/qtnfmac/cfg80211.c | 2 +- .../net/wireless/quantenna/qtnfmac/event.c | 12 +-- drivers/net/wireless/ti/wl18xx/event.c | 2 +- drivers/net/wireless/virtual/mac80211_hwsim.c | 2 +- include/net/cfg80211.h | 25 +++--- include/net/mac80211.h | 5 +- net/mac80211/cfg.c | 49 ++++++----- net/mac80211/chan.c | 1 + net/mac80211/ieee80211_i.h | 8 +- net/mac80211/iface.c | 8 +- net/mac80211/link.c | 12 +++ net/mac80211/mlme.c | 13 +-- net/mac80211/pm.c | 2 +- net/mac80211/scan.c | 6 +- net/mac80211/util.c | 84 +++++++++++++++---- net/wireless/ibss.c | 2 +- net/wireless/mesh.c | 2 +- net/wireless/mlme.c | 20 +++-- net/wireless/nl80211.c | 33 ++++++-- net/wireless/rdev-ops.h | 13 +-- net/wireless/reg.c | 19 +++-- net/wireless/trace.h | 40 ++++++--- 35 files changed, 261 insertions(+), 142 deletions(-) base-commit: 20361712880396e44ce80aaeec2d93d182035651 -- 2.34.1