wifi: mt76: mt7996: drop return in mt7996_sta_statistics
authorRyder Lee <ryder.lee@mediatek.com>
Wed, 10 May 2023 04:53:21 +0000 (12:53 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 25 Jul 2023 19:59:40 +0000 (21:59 +0200)
Avoid blocking other statistics sinfo->filled when txrate is
unavailable.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/main.c

index 7a97b71..0dbfb0d 100644 (file)
@@ -975,18 +975,19 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
        struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
        struct rate_info *txrate = &msta->wcid.rate;
 
-       if (!txrate->legacy && !txrate->flags)
-               return;
-
-       if (txrate->legacy) {
-               sinfo->txrate.legacy = txrate->legacy;
-       } else {
-               sinfo->txrate.mcs = txrate->mcs;
-               sinfo->txrate.nss = txrate->nss;
-               sinfo->txrate.bw = txrate->bw;
-               sinfo->txrate.he_gi = txrate->he_gi;
-               sinfo->txrate.he_dcm = txrate->he_dcm;
-               sinfo->txrate.he_ru_alloc = txrate->he_ru_alloc;
+       if (txrate->legacy || txrate->flags) {
+               if (txrate->legacy) {
+                       sinfo->txrate.legacy = txrate->legacy;
+               } else {
+                       sinfo->txrate.mcs = txrate->mcs;
+                       sinfo->txrate.nss = txrate->nss;
+                       sinfo->txrate.bw = txrate->bw;
+                       sinfo->txrate.he_gi = txrate->he_gi;
+                       sinfo->txrate.he_dcm = txrate->he_dcm;
+                       sinfo->txrate.he_ru_alloc = txrate->he_ru_alloc;
+               }
+               sinfo->txrate.flags = txrate->flags;
+               sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
        }
        sinfo->txrate.flags = txrate->flags;
        sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);