2024-02-07 10:59:32

by Johannes Berg

[permalink] [raw]
Subject: [PATCH v2] wifi: mac80211: don't use sband->band early

From: Johannes Berg <[email protected]>

Some drivers may (notably mt76 does) not set up sband->band
before registering, and cfg80211 will fill it in later. But
since the HT/HE capability check mac80211 required it to be
initialized already, otherwise failing things. This really
isn't necessary though since the code is iterating the list
of bands, and has the 'band' variable available. Fix it to
not require the sband->band to be initialized already.

Fixes: f04d2c247e04 ("wifi: mac80211: disallow drivers with HT wider than HE")
Reported-by: Bert Karwatzki <[email protected]>
Debugged-by: Bert Karwatzki <[email protected]>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218466
Signed-off-by: Johannes Berg <[email protected]>
---
v2: add the right tags
---
net/mac80211/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index e05bcc35bc1e..6d38b8dce8a2 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -1124,7 +1124,7 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
supp_he = supp_he || iftd->he_cap.has_he;
supp_eht = supp_eht || iftd->eht_cap.has_eht;

- if (sband->band == NL80211_BAND_2GHZ)
+ if (band == NL80211_BAND_2GHZ)
he_40_mhz_cap =
IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G;
else
--
2.43.0