drivers/net/wireless/ath/ath12k/wmi.c | 1 + 1 file changed, 1 insertion(+)
From: Rajat Soni <quic_rajson@quicinc.com>
Currently, in ath12k_service_ready_ext_event(), svc_rdy_ext.mac_phy_caps
is not freed in the failure case, causing a memory leak. The following
trace is observed in kmemleak:
unreferenced object 0xffff8b3eb5789c00 (size 1024):
comm "softirq", pid 0, jiffies 4294942577
hex dump (first 32 bytes):
00 00 00 00 01 00 00 00 00 00 00 00 7b 00 00 10 ............{...
01 00 00 00 00 00 00 00 01 00 00 00 1f 38 00 00 .............8..
backtrace (crc 44e1c357):
__kmalloc_noprof+0x30b/0x410
ath12k_wmi_mac_phy_caps_parse+0x84/0x100 [ath12k]
ath12k_wmi_tlv_iter+0x5e/0x140 [ath12k]
ath12k_wmi_svc_rdy_ext_parse+0x308/0x4c0 [ath12k]
ath12k_wmi_tlv_iter+0x5e/0x140 [ath12k]
ath12k_service_ready_ext_event.isra.0+0x44/0xd0 [ath12k]
ath12k_wmi_op_rx+0x2eb/0xd70 [ath12k]
ath12k_htc_rx_completion_handler+0x1f4/0x330 [ath12k]
ath12k_ce_recv_process_cb+0x218/0x300 [ath12k]
ath12k_pci_ce_workqueue+0x1b/0x30 [ath12k]
process_one_work+0x219/0x680
bh_worker+0x198/0x1f0
tasklet_action+0x13/0x30
handle_softirqs+0xca/0x460
__irq_exit_rcu+0xbe/0x110
irq_exit_rcu+0x9/0x30
Free svc_rdy_ext.mac_phy_caps in the error case to fix this memory leak.
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199-QCAHKSWPL_SILICONZ-1
Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")
Signed-off-by: Rajat Soni <quic_rajson@quicinc.com>
Signed-off-by: Raj Kumar Bhagat <quic_rajkbhag@quicinc.com>
---
drivers/net/wireless/ath/ath12k/wmi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/ath/ath12k/wmi.c b/drivers/net/wireless/ath/ath12k/wmi.c
index ea303dca38b51f98399079cd3ac06a48fd9cc025..460837f61894b05b1356d3dfdecfbf7b06f8a3e6 100644
--- a/drivers/net/wireless/ath/ath12k/wmi.c
+++ b/drivers/net/wireless/ath/ath12k/wmi.c
@@ -4733,6 +4733,7 @@ static int ath12k_service_ready_ext_event(struct ath12k_base *ab,
return 0;
err:
+ kfree(svc_rdy_ext.mac_phy_caps);
ath12k_wmi_free_dbring_caps(ab);
return ret;
}
---
base-commit: 21346cd925c2567d5f56cdb1421c94815ac10221
change-id: 20250430-wmi-mem-leak-639fa7becfbc
On Wed, 30 Apr 2025 10:25:38 +0530, Raj Kumar Bhagat wrote:
> Currently, in ath12k_service_ready_ext_event(), svc_rdy_ext.mac_phy_caps
> is not freed in the failure case, causing a memory leak. The following
> trace is observed in kmemleak:
>
> unreferenced object 0xffff8b3eb5789c00 (size 1024):
> comm "softirq", pid 0, jiffies 4294942577
> hex dump (first 32 bytes):
> 00 00 00 00 01 00 00 00 00 00 00 00 7b 00 00 10 ............{...
> 01 00 00 00 00 00 00 00 01 00 00 00 1f 38 00 00 .............8..
> backtrace (crc 44e1c357):
> __kmalloc_noprof+0x30b/0x410
> ath12k_wmi_mac_phy_caps_parse+0x84/0x100 [ath12k]
> ath12k_wmi_tlv_iter+0x5e/0x140 [ath12k]
> ath12k_wmi_svc_rdy_ext_parse+0x308/0x4c0 [ath12k]
> ath12k_wmi_tlv_iter+0x5e/0x140 [ath12k]
> ath12k_service_ready_ext_event.isra.0+0x44/0xd0 [ath12k]
> ath12k_wmi_op_rx+0x2eb/0xd70 [ath12k]
> ath12k_htc_rx_completion_handler+0x1f4/0x330 [ath12k]
> ath12k_ce_recv_process_cb+0x218/0x300 [ath12k]
> ath12k_pci_ce_workqueue+0x1b/0x30 [ath12k]
> process_one_work+0x219/0x680
> bh_worker+0x198/0x1f0
> tasklet_action+0x13/0x30
> handle_softirqs+0xca/0x460
> __irq_exit_rcu+0xbe/0x110
> irq_exit_rcu+0x9/0x30
>
> [...]
Applied, thanks!
[1/1] wifi: ath12k: fix memory leak in ath12k_service_ready_ext_event
commit: 89142d34d5602c7447827beb181fa06eb08b9d5c
Best regards,
--
Jeff Johnson <jeff.johnson@oss.qualcomm.com>
© 2016 - 2026 Red Hat, Inc.