The commits bd6ec8111e65 and 2977567b244f changed firmware stats handling to be caller-driven, requiring explicit ath12k_fw_stats_reset() calls after using ath12k_mac_get_fw_stats(). In ath12k_mac_op_get_txpower(), when ath12k_mac_get_fw_stats() succeeds but the pdev stats list is empty, the function exits without calling ath12k_fw_stats_reset(). Even though the pdev list is empty, the firmware may have populated other stats lists (vdevs, beacons, etc.) in the ar->fw_stats structure. Without resetting the stats buffer, this data accumulates across multiple calls, eventually causing the stats buffer to overflow and leading to firmware communication failures (error -71/EPROTO) during subsequent operations. The issue manifests during 5GHz scanning which triggers multiple TX power queries. Symptoms include: - "failed to pull fw stats: -71" errors in dmesg - 5GHz networks not detected despite hardware support - 2.4GHz networks work normally Fix by calling ath12k_fw_stats_reset() when the pdev list is empty, ensuring the stats buffer is properly cleaned up even when only partial stats data is received from firmware. Fixes: bd6ec8111e65 ("wifi: ath12k: Make firmware stats reset caller-driven") Link: https://bugs.launchpad.net/ubuntu-concept/+bug/2138308 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302 (Lenovo Yoga Slim 7x) Signed-off-by: Saikiran --- drivers/net/wireless/ath/ath12k/mac.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c index e0e49f782bf8..6e35c3ee9864 100644 --- a/drivers/net/wireless/ath/ath12k/mac.c +++ b/drivers/net/wireless/ath/ath12k/mac.c @@ -5169,6 +5169,7 @@ static int ath12k_mac_op_get_txpower(struct ieee80211_hw *hw, struct ath12k_fw_stats_pdev, list); if (!pdev) { spin_unlock_bh(&ar->data_lock); + ath12k_fw_stats_reset(ar); goto err_fallback; } -- 2.51.0