diff mbox series

ath11k: remove return for empty tx bitrate in mac_op_sta_statistics

Message ID 20211011084957.31024-1-wgong@codeaurora.org (mailing list archive)
State Accepted
Commit 1d795645e1eef97fe5d409e3dd5747a942f00e08
Delegated to: Kalle Valo
Headers show
Series ath11k: remove return for empty tx bitrate in mac_op_sta_statistics | expand

Commit Message

Wen Gong Oct. 11, 2021, 8:49 a.m. UTC
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).

Same change which is upstream also exists in ath10k:
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>
---
 drivers/net/wireless/ath/ath11k/mac.c | 29 +++++++++++++--------------
 1 file changed, 14 insertions(+), 15 deletions(-)

Comments

Kalle Valo Nov. 15, 2021, 9:23 a.m. UTC | #1
Wen Gong <wgong@codeaurora.org> wrote:

> 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>

Patch applied to ath-next branch of ath.git, thanks.

1d795645e1ee ath11k: remove return for empty tx bitrate in mac_op_sta_statistics
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 0f54332bc24c..8714f971ad67 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -6965,21 +6965,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;