wifi: cfg80211/mac80211: move puncturing into chandef
authorJohannes Berg <johannes.berg@intel.com>
Mon, 29 Jan 2024 18:34:49 +0000 (19:34 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 8 Feb 2024 14:00:39 +0000 (15:00 +0100)
commitb82730bf57b54803ab94abbfd8c4422a7081886d
tree0638faf1ab123b5fcd5994456ff93e4410ae11ab
parent8616f27b3fb0d47be053d7bebc9539171a514917
wifi: cfg80211/mac80211: move puncturing into chandef

Aloka originally suggested that puncturing should be part of
the chandef, so that it's treated correctly. At the time, I
disagreed and it ended up not part of the chandef, but I've
now realized that this was wrong. Even for clients, the RX,
and perhaps more importantly, CCA configuration needs to take
puncturing into account.

Move puncturing into the chandef, and adjust all the code
accordingly. Also add a few tests for puncturing in chandef
compatibility checking.

Link: https://lore.kernel.org/linux-wireless/20220214223051.3610-1-quic_alokad@quicinc.com/
Suggested-by: Aloka Dixit <quic_alokad@quicinc.com>
Link: https://msgid.link/20240129194108.307183a5d2e5.I4d7fe2f126b2366c1312010e2900dfb2abffa0f6@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
18 files changed:
drivers/net/wireless/ath/ath12k/mac.c
drivers/net/wireless/ath/ath6kl/cfg80211.c
drivers/net/wireless/intel/iwlwifi/mvm/link.c
drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c
drivers/net/wireless/marvell/mwifiex/11h.c
drivers/net/wireless/quantenna/qtnfmac/event.c
drivers/net/wireless/realtek/rtw89/fw.c
include/net/cfg80211.h
include/net/mac80211.h
net/mac80211/cfg.c
net/mac80211/chan.c
net/mac80211/link.c
net/mac80211/mlme.c
net/mac80211/util.c
net/wireless/chan.c
net/wireless/nl80211.c
net/wireless/tests/chan.c
net/wireless/trace.h