wifi: mt76: mt7921: reset msta->airtime_ac while clearing up hw value
authorSean Wang <sean.wang@mediatek.com>
Mon, 29 Aug 2022 22:57:44 +0000 (06:57 +0800)
committerFelix Fietkau <nbd@nbd.name>
Thu, 15 Sep 2022 11:21:39 +0000 (13:21 +0200)
We should reset mstat->airtime_ac along with clear up the entries in the
hardware WLAN table for the Rx and Rx accumulative airtime. Otherwsie, the
value msta->airtime_ac - [tx, rx]_last may be a negative and that is not
the actual airtime the device took in the last run.

Reported-by: YN Chen <YN.Chen@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7921/main.c

index 1f02a8fe1a047a52b120850d3e6428aa5e249af3..7e409ac7d9a820f71090c78d49d9c4f4f8cda6cb 100644 (file)
@@ -752,6 +752,7 @@ void mt7921_mac_sta_assoc(struct mt76_dev *mdev, struct ieee80211_vif *vif,
 
        mt7921_mac_wtbl_update(dev, msta->wcid.idx,
                               MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
+       memset(msta->airtime_ac, 0, sizeof(msta->airtime_ac));
 
        mt7921_mcu_sta_update(dev, sta, vif, true, MT76_STA_INFO_STATE_ASSOC);