
Daniil DulovandPing-Ke Shih
16d8fd74db
wifi: rtl818x: Kill URBs before clearing tx status queue
In rtl8187_stop() move the call of usb_kill_anchored_urbs() before clearing
b_tx_status.queue. This change prevents callbacks from using already freed
skb due to anchor was not killed before freeing such skb.
BUG: kernel NULL pointer dereference, address: 0000000000000080
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 0 P4D 0
Oops: Oops: 0000 [#1] SMP NOPTI
CPU: 7 UID: 0 PID: 0 Comm: swapper/7 Not tainted 6.15.0 #8 PREEMPT(voluntary)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015
RIP: 0010:ieee80211_tx_status_irqsafe+0x21/0xc0 [mac80211]
Call Trace:
<IRQ>
rtl8187_tx_cb+0x116/0x150 [rtl8187]
__usb_hcd_giveback_urb+0x9d/0x120
usb_giveback_urb_bh+0xbb/0x140
process_one_work+0x19b/0x3c0
bh_worker+0x1a7/0x210
tasklet_action+0x10/0x30
handle_softirqs+0xf0/0x340
__irq_exit_rcu+0xcd/0xf0
common_interrupt+0x85/0xa0
</IRQ>
Tested on RTL8187BvE device.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: c1db52b9d2 ("rtl8187: Use usb anchor facilities to manage urbs")
Signed-off-by: Daniil Dulov <d.dulov@aladdin.ru>
Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250617135634.21760-1-d.dulov@aladdin.ru
2025-06-24 15:31:45 +08:00
..
2025-05-28 09:46:39 -07:00
2025-05-28 14:55:35 -07:00
2025-05-26 08:02:43 -07:00
2025-05-27 16:48:47 -07:00
2025-05-26 11:39:36 -07:00
2025-05-22 13:06:28 -04:00
2025-05-28 09:46:39 -07:00
2025-05-17 20:46:38 -07:00
2025-05-27 09:01:26 -07:00
2025-05-27 16:48:47 -07:00
2025-05-27 16:48:47 -07:00
2025-05-26 16:04:17 -07:00
2025-05-21 08:45:03 +02:00
2025-05-28 09:46:39 -07:00
2025-05-27 10:13:06 -07:00
2025-05-28 14:55:35 -07:00
2025-05-27 15:22:01 -07:00
2025-05-28 09:46:39 -07:00
2025-05-27 08:07:32 -07:00
2025-05-27 16:48:47 -07:00
2025-05-27 08:07:32 -07:00
2025-05-28 15:24:36 -07:00
2025-05-24 18:54:18 -07:00
2025-05-27 20:09:06 -07:00
2025-05-27 08:31:21 -07:00
2025-05-28 07:47:10 -07:00
2025-05-28 09:17:20 -07:00
2025-05-27 15:53:55 -07:00
2025-05-27 15:22:01 -07:00
2025-05-28 07:47:10 -07:00
2025-05-19 14:26:54 +02:00
2025-06-24 15:31:45 +08:00
2025-05-21 20:31:18 -07:00
2025-05-28 15:24:36 -07:00
2025-05-27 15:22:01 -07:00
2025-05-19 15:37:53 +05:30
2025-05-27 20:09:06 -07:00
2025-05-28 14:55:35 -07:00
2025-05-27 16:32:30 -07:00
2025-05-28 09:46:39 -07:00
2025-05-19 16:11:05 +02:00
2025-05-22 09:42:41 -07:00
2025-05-19 18:07:39 +02:00
2025-05-27 15:49:58 -07:00
2025-05-28 15:24:36 -07:00
2025-05-28 07:47:10 -07:00
2025-05-16 21:06:11 +02:00
2025-05-27 15:01:47 -07:00
2025-05-17 12:04:19 -07:00
2025-05-27 15:53:55 -07:00
2025-05-28 09:17:20 -07:00
2025-05-27 08:25:42 +02:00
2025-05-27 16:28:02 -07:00
2025-05-27 08:15:26 -07:00
2025-05-27 16:48:47 -07:00
2025-05-28 09:46:39 -07:00
2025-05-28 07:47:10 -07:00
2025-05-23 07:09:00 +02:00