mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-25 14:15:15 -04:00
wifi: ath12k: fix memory leak in ath12k_qmi_driver_event_work()
Currently the buffer pointed by event is not freed in case ATH12K_FLAG_UNREGISTERING bit is set, this causes memory leak. Add a goto skip instead of return, to ensure event and all the list entries are freed properly. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 Signed-off-by: Rajat Soni <quic_rajson@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230315090632.15065-1-quic_rajson@quicinc.com
This commit is contained in:
@@ -2991,7 +2991,7 @@ static void ath12k_qmi_driver_event_work(struct work_struct *work)
|
||||
spin_unlock(&qmi->event_lock);
|
||||
|
||||
if (test_bit(ATH12K_FLAG_UNREGISTERING, &ab->dev_flags))
|
||||
return;
|
||||
goto skip;
|
||||
|
||||
switch (event->type) {
|
||||
case ATH12K_QMI_EVENT_SERVER_ARRIVE:
|
||||
@@ -3032,6 +3032,8 @@ static void ath12k_qmi_driver_event_work(struct work_struct *work)
|
||||
ath12k_warn(ab, "invalid event type: %d", event->type);
|
||||
break;
|
||||
}
|
||||
|
||||
skip:
|
||||
kfree(event);
|
||||
spin_lock(&qmi->event_lock);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user