OSDN Git Service
(root)
/
tomoyo
/
tomoyo-test1.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f5f80e3
)
wifi: rtw88: delete timer and free skb queue when unloading
author
Dmitry Antipov
<dmantipov@yandex.ru>
Wed, 28 Jun 2023 07:23:15 +0000
(10:23 +0300)
committer
Kalle Valo
<kvalo@kernel.org>
Tue, 25 Jul 2023 14:40:43 +0000
(17:40 +0300)
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
drivers/net/wireless/realtek/rtw88/main.c
patch
|
blob
|
history
diff --git
a/drivers/net/wireless/realtek/rtw88/main.c
b/drivers/net/wireless/realtek/rtw88/main.c
index
c853e2f
..
c2ddb4d
100644
(file)
--- a/
drivers/net/wireless/realtek/rtw88/main.c
+++ b/
drivers/net/wireless/realtek/rtw88/main.c
@@
-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) {