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: 17d, last: 22h36m
Sample crash report:
usb 1-1: USB disconnect, device number 2
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: 4353 Comm: syz.0.17 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/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 60 88 42 fb 4c 89 f0 48 c1 e8 03 <80> 3c 18 00 74 08 4c 89 f7 e8 0b ab 87 fb 4d 8b 26 4c 89 74 24 10
RSP: 0018:ffffc900010ff7c8 EFLAGS: 00010046
RAX: 0000000000000000 RBX: dffffc0000000000 RCX: ffff888027df9dc0
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffff5200021fee8 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: 00007ffbcd7bd0f5 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:890
do_group_exit+0x12c/0x2f0 kernel/exit.c:1004
get_signal+0x7eb/0x12e0 kernel/signal.c:2909
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:0x7f818f7280d9
Code: Unable to access opcode bytes at RIP 0x7f818f7280af.
RSP: 002b:00007ffccc36aef8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: 000000000000000b RBX: 00007f818f9affa0 RCX: 00007f818f7280d9
RDX: 000000000000000b RSI: 0000200000000200 RDI: 0000000000000004
RBP: 00007f818f7bf024 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f818f9affac R14: 00007f818f9affa0 R15: 00007f818f9affa0
</TASK>
Modules linked in:
---[ end trace a846245034ba4f02 ]---
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 60 88 42 fb 4c 89 f0 48 c1 e8 03 <80> 3c 18 00 74 08 4c 89 f7 e8 0b ab 87 fb 4d 8b 26 4c 89 74 24 10
RSP: 0018:ffffc900010ff7c8 EFLAGS: 00010046
RAX: 0000000000000000 RBX: dffffc0000000000 RCX: ffff888027df9dc0
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffff5200021fee8 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: 00007ffbcd7bd0f5 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 60 88 42 fb call 0xfb428882
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 0b ab 87 fb call 0xfb87ab42
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.