OSDN Git Service

wifi: rtw89: ser: reset total_sta_assoc and tdls_peer when L2
authorZong-Zhe Yang <kevin_yang@realtek.com>
Tue, 16 May 2023 08:24:39 +0000 (16:24 +0800)
committerKalle Valo <kvalo@kernel.org>
Thu, 25 May 2023 16:10:58 +0000 (19:10 +0300)
The total_sta_assoc and the tdls_peer are used for statistics accodring
to stations' information. L2 (Level 2) SER (system error recovery) will
call ieee80211_restart_hw() which re-invokes sta_state ops. And then,
the total_sta_assoc and tdls_peer will be re-increased. In case wrong
statistics results, we reset them in SER L2 handling.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230516082441.11154-2-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/ser.c

index 9ba99f3..54b314b 100644 (file)
@@ -303,6 +303,7 @@ static void ser_reset_vif(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
        rtw89_core_release_bit_map(rtwdev->hw_port, rtwvif->port);
        rtwvif->net_type = RTW89_NET_TYPE_NO_LINK;
        rtwvif->trigger = false;
+       rtwvif->tdls_peer = 0;
 }
 
 static void ser_sta_deinit_cam_iter(void *data, struct ieee80211_sta *sta)
@@ -341,6 +342,8 @@ static void ser_reset_mac_binding(struct rtw89_dev *rtwdev)
        rtw89_core_release_all_bits_map(rtwdev->mac_id_map, RTW89_MAX_MAC_ID_NUM);
        rtw89_for_each_rtwvif(rtwdev, rtwvif)
                ser_reset_vif(rtwdev, rtwvif);
+
+       rtwdev->total_sta_assoc = 0;
 }
 
 /* hal function */