[syzbot] [wireless?] WARNING: refcount bug in rsi_91x_deinit
From: syzbot <hidden>
Date: 2026-03-03 22:48:28
Also in:
linux-usb, linux-wireless, lkml
Hello, syzbot found the following issue on: HEAD commit: bb375c251ab4 dt-bindings: usb: st,st-ohci-300x: convert to.. git tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing console output: https://syzkaller.appspot.com/x/log.txt?x=1416c5aa580000 kernel config: https://syzkaller.appspot.com/x/.config?x=f1500201919951cc dashboard link: https://syzkaller.appspot.com/bug?extid=ba76f6da746fd674d311 compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44 Unfortunately, I don't have any reproducer for this issue yet. Downloadable assets: disk image: https://storage.googleapis.com/syzbot-assets/2475c3172471/disk-bb375c25.raw.xz vmlinux: https://storage.googleapis.com/syzbot-assets/30449aa672dd/vmlinux-bb375c25.xz kernel image: https://storage.googleapis.com/syzbot-assets/46d3937d1c16/bzImage-bb375c25.xz IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+ba76f6da746fd674d311@syzkaller.appspotmail.com ------------[ cut here ]------------ refcount_t: addition on 0; use-after-free. WARNING: lib/refcount.c:25 at refcount_warn_saturate+0x111/0x130 lib/refcount.c:25, CPU#0: kworker/0:1/10 Modules linked in: CPU: 0 UID: 0 PID: 10 Comm: kworker/0:1 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2026 Workqueue: usb_hub_wq hub_event RIP: 0010:refcount_warn_saturate+0x111/0x130 lib/refcount.c:25 Code: cc e8 43 d8 e5 fe 48 8d 3d 4c 6c 28 08 67 48 0f b9 3a e8 32 d8 e5 fe 5b 5d e9 cb 88 9f 04 e8 26 d8 e5 fe 48 8d 3d 3f 6c 28 08 <67> 48 0f b9 3a e8 15 d8 e5 fe 5b 5d c3 cc cc cc cc 48 89 df e8 46 RSP: 0018:ffffc900000aef30 EFLAGS: 00010246 RAX: 0000000000100000 RBX: ffff88811d6f9d28 RCX: ffffc90015361000 RDX: 0000000000100000 RSI: ffffffff82cbe1da RDI: ffffffff8af44e20 RBP: 0000000000000002 R08: 0000000000000005 R09: 0000000000000004 R10: 0000000000000002 R11: ffff8881f5639708 R12: ffff88811bdf0000 R13: ffff88811d6f9d28 R14: 0000000000000000 R15: 0000000000000002 FS: 0000000000000000(0000) GS:ffff8882686d3000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f04409cb6b0 CR3: 0000000121146000 CR4: 00000000003506f0 Call Trace: <TASK> __refcount_add include/linux/refcount.h:289 [inline] __refcount_inc include/linux/refcount.h:366 [inline] refcount_inc include/linux/refcount.h:383 [inline] get_task_struct include/linux/sched/task.h:116 [inline] kthread_stop+0x602/0x680 kernel/kthread.c:785 rsi_kill_thread drivers/net/wireless/rsi/rsi_common.h:78 [inline] rsi_91x_deinit+0x102/0x1f0 drivers/net/wireless/rsi/rsi_91x_main.c:405 rsi_probe+0xd27/0x1aa0 drivers/net/wireless/rsi/rsi_91x_usb.c:861 usb_probe_interface+0x303/0x8f0 drivers/usb/core/driver.c:396 call_driver_probe drivers/base/dd.c:583 [inline] really_probe+0x241/0xa60 drivers/base/dd.c:661 __driver_probe_device+0x1de/0x400 drivers/base/dd.c:803 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:833 __device_attach_driver+0x1ff/0x3e0 drivers/base/dd.c:961 bus_for_each_drv+0x159/0x1e0 drivers/base/bus.c:500 __device_attach+0x1e4/0x4d0 drivers/base/dd.c:1033 device_initial_probe+0xaf/0xd0 drivers/base/dd.c:1088 bus_probe_device+0x64/0x160 drivers/base/bus.c:574 device_add+0x11d9/0x1950 drivers/base/core.c:3689 usb_set_configuration+0xd97/0x1c60 drivers/usb/core/message.c:2208 usb_generic_driver_probe+0xa1/0xe0 drivers/usb/core/generic.c:250 usb_probe_device+0xef/0x400 drivers/usb/core/driver.c:291 call_driver_probe drivers/base/dd.c:583 [inline] really_probe+0x241/0xa60 drivers/base/dd.c:661 __driver_probe_device+0x1de/0x400 drivers/base/dd.c:803 driver_probe_device+0x4c/0x1b0 drivers/base/dd.c:833 __device_attach_driver+0x1ff/0x3e0 drivers/base/dd.c:961 bus_for_each_drv+0x159/0x1e0 drivers/base/bus.c:500 __device_attach+0x1e4/0x4d0 drivers/base/dd.c:1033 device_initial_probe+0xaf/0xd0 drivers/base/dd.c:1088 bus_probe_device+0x64/0x160 drivers/base/bus.c:574 device_add+0x11d9/0x1950 drivers/base/core.c:3689 usb_new_device.cold+0x685/0x115c drivers/usb/core/hub.c:2695 hub_port_connect drivers/usb/core/hub.c:5567 [inline] hub_port_connect_change drivers/usb/core/hub.c:5707 [inline] port_event drivers/usb/core/hub.c:5871 [inline] hub_event+0x314d/0x4af0 drivers/usb/core/hub.c:5953 process_one_work+0x9d7/0x1920 kernel/workqueue.c:3275 process_scheduled_works kernel/workqueue.c:3358 [inline] worker_thread+0x5da/0xe40 kernel/workqueue.c:3439 kthread+0x370/0x450 kernel/kthread.c:467 ret_from_fork+0x6c3/0xcb0 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 </TASK> ---------------- Code disassembly (best guess): 0: cc int3 1: e8 43 d8 e5 fe call 0xfee5d849 6: 48 8d 3d 4c 6c 28 08 lea 0x8286c4c(%rip),%rdi # 0x8286c59 d: 67 48 0f b9 3a ud1 (%edx),%rdi 12: e8 32 d8 e5 fe call 0xfee5d849 17: 5b pop %rbx 18: 5d pop %rbp 19: e9 cb 88 9f 04 jmp 0x49f88e9 1e: e8 26 d8 e5 fe call 0xfee5d849 23: 48 8d 3d 3f 6c 28 08 lea 0x8286c3f(%rip),%rdi # 0x8286c69 * 2a: 67 48 0f b9 3a ud1 (%edx),%rdi <-- trapping instruction 2f: e8 15 d8 e5 fe call 0xfee5d849 34: 5b pop %rbx 35: 5d pop %rbp 36: c3 ret 37: cc int3 38: cc int3 39: cc int3 3a: cc int3 3b: 48 89 df mov %rbx,%rdi 3e: e8 .byte 0xe8 3f: 46 rex.RX --- This report is generated by a bot. It may contain errors. See https://goo.gl/tpsmEJ for more information about syzbot. syzbot engineers can be reached at syzkaller@googlegroups.com. syzbot will keep track of this issue. See: https://goo.gl/tpsmEJ#status for how to communicate with syzbot. If the report is already addressed, let syzbot know by replying with: #syz fix: exact-commit-title If you want to overwrite report's subsystems, reply with: #syz set subsystems: new-subsystem (See the list of subsystem names on the web dashboard) If the report is a duplicate of another one, reply with: #syz dup: exact-subject-of-another-report If you want to undo deduplication, reply with: #syz undup