syzbot
general protection fault in set_link_state
Status:
upstream: reported C repro on 2026/07/25 19:33
Reported-by: syzbot+83e39b821587064bd7a3@syzkaller.appspotmail.com
First crash: 2d11h, last: 1d00h
Sample crash report:
usb usb1: USB disconnect, device number 1
dummy_hcd dummy_hcd.0: stopped
dummy_hcd dummy_hcd.0: USB bus 1 deregistered
general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 1 PID: 4360 Comm: syz.0.17 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/2026
RIP: 0010:set_link_state+0x27/0x11d0 drivers/usb/gadget/udc/dummy_hcd.c:432
Code: ff ff 90 55 41 57 41 56 41 55 41 54 53 48 83 ec 50 49 89 fe 48 bb 00 00 00 00 00 fc ff df e8 70 88 42 fb 4c 89 f0 48 c1 e8 03 <80> 3c 18 00 74 08 4c 89 f7 e8 1b ab 87 fb 4d 8b 26 4c 89 74 24 10
RSP: 0018:ffffc90002faf7c8 EFLAGS: 00010046
RAX: 0000000000000000 RBX: dffffc0000000000 RCX: ffff88807687bb80
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffff520005f5ee8 R12: 0000000000000a02
R13: dffffc0000000000 R14: 0000000000000000 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff8880b9100000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007feb14b15e9c CR3: 000000000c08e000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
dummy_pullup+0xbd/0x120 drivers/usb/gadget/udc/dummy_hcd.c:911
usb_gadget_disconnect+0xd0/0x3a0 drivers/usb/gadget/udc/core.c:763
usb_gadget_remove_driver+0x4a/0x350 drivers/usb/gadget/udc/core.c:1491
usb_gadget_unregister_driver+0x15d/0x4c0 drivers/usb/gadget/udc/core.c:1654
raw_release+0xd6/0x260 drivers/usb/gadget/legacy/raw_gadget.c:416
__fput+0x212/0x8c0 fs/file_table.c:311
task_work_run+0x125/0x1a0 kernel/task_work.c:188
exit_task_work include/linux/task_work.h:33 [inline]
do_exit+0x635/0x2110 kernel/exit.c:884
do_group_exit+0x12c/0x2f0 kernel/exit.c:998
get_signal+0x7eb/0x12e0 kernel/signal.c:2901
arch_do_signal_or_restart+0xe6/0x12a0 arch/x86/kernel/signal.c:867
handle_signal_work kernel/entry/common.c:154 [inline]
exit_to_user_mode_loop+0x9e/0x130 kernel/entry/common.c:178
exit_to_user_mode_prepare+0xee/0x180 kernel/entry/common.c:214
__syscall_exit_to_user_mode_work kernel/entry/common.c:296 [inline]
syscall_exit_to_user_mode+0x16/0x40 kernel/entry/common.c:307
do_syscall_64+0x58/0xa0 arch/x86/entry/common.c:86
entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7f371445be99
Code: Unable to access opcode bytes at RIP 0x7f371445be6f.
RSP: 002b:00007ffd9948eea8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: 000000000000000b RBX: 00007f37146e3fa0 RCX: 00007f371445be99
RDX: 000000000000000b RSI: 0000200000000200 RDI: 0000000000000004
RBP: 00007f37144f1eaf R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f37146e3fac R14: 00007f37146e3fa0 R15: 00007f37146e3fa0
</TASK>
Modules linked in:
---[ end trace 01ab629290a36307 ]---
RIP: 0010:set_link_state+0x27/0x11d0 drivers/usb/gadget/udc/dummy_hcd.c:432
Code: ff ff 90 55 41 57 41 56 41 55 41 54 53 48 83 ec 50 49 89 fe 48 bb 00 00 00 00 00 fc ff df e8 70 88 42 fb 4c 89 f0 48 c1 e8 03 <80> 3c 18 00 74 08 4c 89 f7 e8 1b ab 87 fb 4d 8b 26 4c 89 74 24 10
RSP: 0018:ffffc90002faf7c8 EFLAGS: 00010046
RAX: 0000000000000000 RBX: dffffc0000000000 RCX: ffff88807687bb80
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffff520005f5ee8 R12: 0000000000000a02
R13: dffffc0000000000 R14: 0000000000000000 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff8880b9100000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007feb14b15e9c CR3: 000000000c08e000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess), 1 bytes skipped:
0: ff 90 55 41 57 41 call *0x41574155(%rax)
6: 56 push %rsi
7: 41 55 push %r13
9: 41 54 push %r12
b: 53 push %rbx
c: 48 83 ec 50 sub $0x50,%rsp
10: 49 89 fe mov %rdi,%r14
13: 48 bb 00 00 00 00 00 movabs $0xdffffc0000000000,%rbx
1a: fc ff df
1d: e8 70 88 42 fb call 0xfb428892
22: 4c 89 f0 mov %r14,%rax
25: 48 c1 e8 03 shr $0x3,%rax
* 29: 80 3c 18 00 cmpb $0x0,(%rax,%rbx,1) <-- trapping instruction
2d: 74 08 je 0x37
2f: 4c 89 f7 mov %r14,%rdi
32: e8 1b ab 87 fb call 0xfb87ab52
37: 4d 8b 26 mov (%r14),%r12
3a: 4c 89 74 24 10 mov %r14,0x10(%rsp)
* Struck through repros no longer work on HEAD.