]> www.infradead.org Git - users/hch/configfs.git/commitdiff
wifi: cfg80211: handle 2x996 RU allocation in cfg80211_calculate_bitrate_he()
authorBaochen Qiang <quic_bqiang@quicinc.com>
Thu, 6 Jun 2024 02:06:53 +0000 (10:06 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 12 Jun 2024 11:04:24 +0000 (13:04 +0200)
Currently NL80211_RATE_INFO_HE_RU_ALLOC_2x996 is not handled in
cfg80211_calculate_bitrate_he(), leading to below warning:

kernel: invalid HE MCS: bw:6, ru:6
kernel: WARNING: CPU: 0 PID: 2312 at net/wireless/util.c:1501 cfg80211_calculate_bitrate_he+0x22b/0x270 [cfg80211]

Fix it by handling 2x996 RU allocation in the same way as 160 MHz bandwidth.

Fixes: c4cbaf7973a7 ("cfg80211: Add support for HE")
Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Link: https://msgid.link/20240606020653.33205-3-quic_bqiang@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/util.c

index d262d37c15193b385682857e43948a20d77a79fd..af6ec719567fc14a73580ea03010b8ff15066c01 100644 (file)
@@ -1524,7 +1524,9 @@ static u32 cfg80211_calculate_bitrate_he(struct rate_info *rate)
        if (WARN_ON_ONCE(rate->nss < 1 || rate->nss > 8))
                return 0;
 
-       if (rate->bw == RATE_INFO_BW_160)
+       if (rate->bw == RATE_INFO_BW_160 ||
+           (rate->bw == RATE_INFO_BW_HE_RU &&
+            rate->he_ru_alloc == NL80211_RATE_INFO_HE_RU_ALLOC_2x996))
                result = rates_160M[rate->he_gi];
        else if (rate->bw == RATE_INFO_BW_80 ||
                 (rate->bw == RATE_INFO_BW_HE_RU &&