]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: ath12k: fix invalid AMPDU factor calculation in ath12k_peer_assoc_h_he()
authorBaochen Qiang <quic_bqiang@quicinc.com>
Wed, 10 Jul 2024 02:18:19 +0000 (10:18 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 14:28:50 +0000 (16:28 +0200)
[ Upstream commit a66de2d0f22b1740f3f9777776ad98c4bee62dff ]

Currently ampdu_factor is wrongly calculated in ath12k_peer_assoc_h_he(), fix it.

This is found during code review.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4

Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")
Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://patch.msgid.link/20240710021819.87216-1-quic_bqiang@quicinc.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/ath/ath12k/mac.c

index dd2a7c95517be2fb03335f1aa5e5a653cc4890f2..4bb30e4037287723d2580fc93b6aca831a725864 100644 (file)
@@ -1681,9 +1681,8 @@ static void ath12k_peer_assoc_h_he(struct ath12k *ar,
         * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu
         * length.
         */
-       ampdu_factor = (he_cap->he_cap_elem.mac_cap_info[3] &
-                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) >>
-                       IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK;
+       ampdu_factor = u8_get_bits(he_cap->he_cap_elem.mac_cap_info[3],
+                                  IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK);
 
        if (ampdu_factor) {
                if (sta->deflink.vht_cap.vht_supported)