mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
52 lines
1.7 KiB
Diff
52 lines
1.7 KiB
Diff
From 6aafa1c2d3e3fea2ebe84c018003f2a91722e607 Mon Sep 17 00:00:00 2001
|
|
From: P Praneesh <quic_ppranees@quicinc.com>
|
|
Date: Tue, 6 Jun 2023 14:41:28 +0530
|
|
Subject: [PATCH] wifi: ath11k: fix memory leak in WMI firmware stats
|
|
|
|
Memory allocated for firmware pdev, vdev and beacon statistics
|
|
are not released during rmmod.
|
|
|
|
Fix it by calling ath11k_fw_stats_free() function before hardware
|
|
unregister.
|
|
|
|
While at it, avoid calling ath11k_fw_stats_free() while processing
|
|
the firmware stats received in the WMI event because the local list
|
|
is getting spliced and reinitialised and hence there are no elements
|
|
in the list after splicing.
|
|
|
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
|
|
|
Signed-off-by: P Praneesh <quic_ppranees@quicinc.com>
|
|
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
|
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
|
Link: https://lore.kernel.org/r/20230606091128.14202-1-quic_adisi@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/mac.c | 1 +
|
|
drivers/net/wireless/ath/ath11k/wmi.c | 5 +++++
|
|
2 files changed, 6 insertions(+)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
@@ -9792,6 +9792,7 @@ void ath11k_mac_destroy(struct ath11k_ba
|
|
if (!ar)
|
|
continue;
|
|
|
|
+ ath11k_fw_stats_free(&ar->fw_stats);
|
|
ieee80211_free_hw(ar->hw);
|
|
pdev->ar = NULL;
|
|
}
|
|
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
|
@@ -8119,6 +8119,11 @@ complete:
|
|
rcu_read_unlock();
|
|
spin_unlock_bh(&ar->data_lock);
|
|
|
|
+ /* Since the stats's pdev, vdev and beacon list are spliced and reinitialised
|
|
+ * at this point, no need to free the individual list.
|
|
+ */
|
|
+ return;
|
|
+
|
|
free:
|
|
ath11k_fw_stats_free(&stats);
|
|
}
|