From c5c853aa6dcb40a2a352982cdd8937c4aa6f2e26 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Wed, 16 Sep 2026 12:01:26 +0200 Subject: [PATCH] wifi: mac80211: WARN on 40 MHz HT/HE mismatch This happened to me and was tricky to debug, of course it shouldn't happen with correct drivers, WARN in this case. Link: https://patch.msgid.link/20260916120127.efa58d51d11f.Ie29dc83578893945231db3badfcb7b4a2e2775ba@changeid Signed-off-by: Johannes Berg --- net/mac80211/main.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/net/mac80211/main.c b/net/mac80211/main.c index a59837b9f480..ecd16374e4a1 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -1322,12 +1322,13 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G; /* currently no support for HE client where HT has 40 MHz but not HT */ - if (iftd->he_cap.has_he && - iftd->types_mask & (BIT(NL80211_IFTYPE_STATION) | - BIT(NL80211_IFTYPE_P2P_CLIENT)) && - sband->ht_cap.ht_supported && - sband->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 && - !(iftd->he_cap.he_cap_elem.phy_cap_info[0] & he_40_mhz_cap)) + if (WARN_ON(iftd->he_cap.has_he && + iftd->types_mask & (BIT(NL80211_IFTYPE_STATION) | + BIT(NL80211_IFTYPE_P2P_CLIENT)) && + sband->ht_cap.ht_supported && + sband->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40 && + !(iftd->he_cap.he_cap_elem.phy_cap_info[0] & + he_40_mhz_cap))) return -EINVAL; /* no support for per-band vendor elems with MLO */