ath11k: remove return for empty tx bitrate in mac_op_sta_statistics
authorWen Gong <wgong@codeaurora.org>
Mon, 11 Oct 2021 08:49:57 +0000 (04:49 -0400)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 15 Nov 2021 09:23:26 +0000 (11:23 +0200)
Currently in ath11k_mac_op_sta_statistics() there is the following
logic:

    if (!arsta->txrate.legacy && !arsta->txrate.nss)
        return;

Unfortunately if this condition is true then the function returns without
setting parameters that follow the txrate. To address this issue remove the
return and instead invert the logic to set the txrate logic if
(arsta->txrate.legacy || arsta->txrate.nss).

The same was done also in ath10k in commit 1cd6ba8ae33e ("ath10k: remove return
for NL80211_STA_INFO_TX_BITRATE").

Tested-on: QCA6390 hw2.0 PCI WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1

Signed-off-by: Wen Gong <wgong@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20211011084957.31024-1-wgong@codeaurora.org
drivers/net/wireless/ath/ath11k/mac.c

index 659d3f387b214fbccd0f2f285d180a1cfcc11dbd..e653a0a19d60eaf461a53559bf9d39fc0cf2897a 100644 (file)
@@ -7426,21 +7426,20 @@ static void ath11k_mac_op_sta_statistics(struct ieee80211_hw *hw,
        sinfo->tx_duration = arsta->tx_duration;
        sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_DURATION);
 
-       if (!arsta->txrate.legacy && !arsta->txrate.nss)
-               return;
-
-       if (arsta->txrate.legacy) {
-               sinfo->txrate.legacy = arsta->txrate.legacy;
-       } else {
-               sinfo->txrate.mcs = arsta->txrate.mcs;
-               sinfo->txrate.nss = arsta->txrate.nss;
-               sinfo->txrate.bw = arsta->txrate.bw;
-               sinfo->txrate.he_gi = arsta->txrate.he_gi;
-               sinfo->txrate.he_dcm = arsta->txrate.he_dcm;
-               sinfo->txrate.he_ru_alloc = arsta->txrate.he_ru_alloc;
-       }
-       sinfo->txrate.flags = arsta->txrate.flags;
-       sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
+       if (arsta->txrate.legacy || arsta->txrate.nss) {
+               if (arsta->txrate.legacy) {
+                       sinfo->txrate.legacy = arsta->txrate.legacy;
+               } else {
+                       sinfo->txrate.mcs = arsta->txrate.mcs;
+                       sinfo->txrate.nss = arsta->txrate.nss;
+                       sinfo->txrate.bw = arsta->txrate.bw;
+                       sinfo->txrate.he_gi = arsta->txrate.he_gi;
+                       sinfo->txrate.he_dcm = arsta->txrate.he_dcm;
+                       sinfo->txrate.he_ru_alloc = arsta->txrate.he_ru_alloc;
+               }
+               sinfo->txrate.flags = arsta->txrate.flags;
+               sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
+       }
 
        /* TODO: Use real NF instead of default one. */
        sinfo->signal = arsta->rssi_comb + ATH11K_DEFAULT_NOISE_FLOOR;