mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 08:58:07 +00:00
wifi: rtw88: delete timer and free skb queue when unloading
Fix possible crash and memory leak on driver unload by deleting TX purge timer and freeing C2H queue in 'rtw_core_deinit()', shrink critical section in the latter by freeing COEX queue out of TX report lock scope. Reviewed-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20230628072327.167196-1-dmantipov@yandex.ru
This commit is contained in:
parent
f5f80e32de
commit
634fcbcaa4
1 changed files with 3 additions and 1 deletions
|
@ -2183,10 +2183,12 @@ void rtw_core_deinit(struct rtw_dev *rtwdev)
|
|||
release_firmware(wow_fw->firmware);
|
||||
|
||||
destroy_workqueue(rtwdev->tx_wq);
|
||||
timer_delete_sync(&rtwdev->tx_report.purge_timer);
|
||||
spin_lock_irqsave(&rtwdev->tx_report.q_lock, flags);
|
||||
skb_queue_purge(&rtwdev->tx_report.queue);
|
||||
skb_queue_purge(&rtwdev->coex.queue);
|
||||
spin_unlock_irqrestore(&rtwdev->tx_report.q_lock, flags);
|
||||
skb_queue_purge(&rtwdev->coex.queue);
|
||||
skb_queue_purge(&rtwdev->c2h_queue);
|
||||
|
||||
list_for_each_entry_safe(rsvd_pkt, tmp, &rtwdev->rsvd_page_list,
|
||||
build_list) {
|
||||
|
|
Loading…
Reference in a new issue