[PATCH] wiphy: check if ht_capabilities are actually set
berend de schouwer <[email protected]> Sat, 27 Dec 2025 04:45:27 +0000
| Newsgroups | dev.linux.lists.iwd |
|---|---|
| Message-ID | <[email protected]> |
From: Berend De Schouwer <[email protected]> Some devices set HT, but only provide HT20. When this is true, ap_validate_band_channel() will succeed with 40MHz width, but the device will refuse to start an AP. One such device is the brcmfmac on the Raspberry Pi 5 and earlier. --- src/wiphy.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/wiphy.c b/src/wiphy.c index b6774f69..85e31cf1 100644 --- a/src/wiphy.c +++ b/src/wiphy.c @@ -1676,6 +1676,18 @@ static void parse_band_iftype_data(struct band *band, struct l_genl_attr *ifdata } } +static bool parse_ht_capabilities(struct band *band) +{ + if (test_bit(band->ht_capabilities, 1)) + return true; + + if (test_bit(band->ht_capabilities, 6)) + return true; + + l_debug("no real 40 MHz found"); + return false; +} + static void parse_supported_bands(struct wiphy *wiphy, struct l_genl_attr *bands) { @@ -1772,7 +1784,6 @@ static void parse_suppo rted_bands(struct wiphy *wiphy, continue; memcpy(band->ht_mcs_set, data, len); - band->ht_supported = true; break; case NL80211_BAND_ATTR_HT_CAPA: if (L_WARN_ON(len != @@ -1780,7 +1791,7 @@ static void parse_supported_bands(struct wiphy *wiphy, continue; memcpy(band->ht_capabilities, data, len); - band->ht_supported = true; + band->ht_supported = parse_ht_capabilities(band); break; /* * AMPDU factor/density are part of A-MPDU Parameters, -- 2.52.0
publickey - Berend De Schouwer - 0x128CD671.asc
(application/pgp-keys, 3.1 KB)
-----BEGIN PGP PUBLIC KEY BLOCK----- Comment: https://gopenpgp.org Version: GopenPGP 2.8.2 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 i4ZPyDBc3n68rqs= =9SXl -----END PGP PUBLIC KEY BLOCK-----
signature.asc
(application/pgp-signature, 928 B)
-----BEGIN PGP SIGNATURE----- Version: ProtonMail wsGpBAEBCABdBYJpT2RmCZDbbuBxk4Cg6TUUAAAAAAAcABBzYWx0QG5vdGF0 aW9ucy5vcGVucGdwanMub3Jnlu++caGyNKNAT3AeP7/KhRYhBBKM1nGLSON6 q6UFAttu4HGTgKDpAABjmBAAuJflVHqgRgcEc38+0VnVHUDNEAWapc7Tpsno VyT+fBL4HUo65lMrlgK+iVL3xEVhzDnHPftfrPP/Z8RAiLyutAuf/H9TUrOy EGWy98Pg53D4/FOX2jARDqKA9qFyevksJqZFfBvguWs6pdOfH6CyWL1HwpzO LknzXYgzDuJbZq9CcZ/C7gXJ/D7KS0VUQiCNN4zMRU5IvNuUotxjeUv1HaEW 1IYkMGq8PoaKoC6T4YmnRBKYsjwFH+f6VFEnhTsSnUa6OkPe/ZXCWI8PmLUf 0HgnQvHf3L75bdvjDGqK5cXuSlf3eiuQ41Q1vCuqMgsLy8y5R13hSBAe/jWY fSbKAevQtptKR+NHqUXb3oS6o668X2RI0nWYDwadrt2jrMJLg7zYJq9upR5B h4CtGCRnPDcjxq4H+zczMXtUcxTAzNdE5w+KDSUD13/K48zVjxw+DG8ZtnqT xPA4zji2CbYfk9l9p9gcQthkk06iujUIxOvvBAk1AKD687W2Zb6cv4yBVhl0 SqRh/EA80mkeP5M+WvLzn/HutwtJ6SF3mGLtGP5dX8tvW3nASGCq78SvSUel OUJ4CRc/6ClXV9a+2nTyM6pe6q25zMXE9Yg+7eZzExOMUlOHwVRLWr2HnAgI /T4TH79QIibjhyyv0suwDBsSa3g3BcMf9Wm8s/2t9xY8Qdw= =stg/ -----END PGP SIGNATURE-----