Regression on big-endian: ff5248a8e91e drops needed le_to_host16()

Alexander Wilhelm alexander.wilhelm at westermo.com
Tue Jun 9 06:12:55 PDT 2026


Hi Jouni,

ff5248a8e91e ("nl80211: Fix HE 6 GHz capability fetching on big-endian
CPUs") breaks 6 GHz AP on BE hosts (PowerPC e500mc, ath12k/QCN9274):

    The driver does not support the configured HE 6 GHz Max MPDU length

The kernel sends NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA as a raw __le16
(struct ieee80211_he_6ghz_capa { __le16 capa; }, see
include/linux/ieee80211-he.h and the nla_put() in
net/wireless/nl80211.c). nla_get_u16() is a host-order load of those
raw bytes, so on BE the value comes out byte-swapped (0xb832 instead
of 0x32b8) and the MAX_MPDU bits read as zero.

The original le_to_host16() was load-bearing on BE and a no-op on LE.
mac80211 itself treats the field as LE (le16_get_bits() in
net/mac80211/he.c, util.c). Reverting your commit fixes 6 GHz here
without affecting LE.

Did I miss something, or is this a straightforward regression worth
reverting?


Best regards
Alexander Wilhelm



More information about the Hostap mailing list