syzbot
general protection fault in usb_ep_alloc_request
Status:
moderation: reported on 2026/09/16 15:32
Subsystems:
usb
Labels:
prio:low
[Documentation on labels]
Reported-by: syzbot+2a7ce560c30c4ca3bc22@syzkaller.appspotmail.com
First crash: 4d02h, last: 3d18h
Sample crash report:
FAULT_INJECTION: forcing a failure.
name failslab, interval 1, probability 0, space 0, times 1
CPU: 0 UID: 0 PID: 5315 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
<TASK>
dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
fail_dump lib/fault-inject.c:73 [inline]
should_fail_ex+0x410/0x560 lib/fault-inject.c:174
should_failslab+0xa8/0x100 mm/failslab.c:46
slab_pre_alloc_hook mm/slub.c:4638 [inline]
slab_alloc_node mm/slub.c:4974 [inline]
__kmalloc_cache_noprof+0xa3/0x600 mm/slub.c:5559
_kmalloc_noprof include/linux/slab.h:991 [inline]
_kzalloc_noprof include/linux/slab.h:1312 [inline]
dummy_alloc_request+0x7f/0x130 drivers/usb/gadget/udc/dummy_hcd.c:693
usb_ep_alloc_request+0x67/0x280 drivers/usb/gadget/udc/core.c:197
gadget_bind+0xec/0x610 drivers/usb/gadget/legacy/raw_gadget.c:294
gadget_bind_driver+0x2ca/0x9e0 drivers/usb/gadget/udc/core.c:1662
call_driver_probe drivers/base/dd.c:-1 [inline]
really_probe+0x254/0xae0 drivers/base/dd.c:706
__driver_probe_device+0x1e8/0x360 drivers/base/dd.c:868
driver_probe_device+0x4f/0x240 drivers/base/dd.c:898
__driver_attach+0x339/0x600 drivers/base/dd.c:1292
bus_for_each_dev+0x23b/0x2c0 drivers/base/bus.c:383
bus_add_driver+0x345/0x670 drivers/base/bus.c:763
driver_register+0x23a/0x320 drivers/base/driver.c:174
usb_gadget_register_driver_owner+0xf9/0x270 drivers/usb/gadget/udc/core.c:1752
raw_ioctl_run drivers/usb/gadget/legacy/raw_gadget.c:596 [inline]
raw_ioctl+0x1541/0x41c0 drivers/usb/gadget/legacy/raw_gadget.c:1307
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:597 [inline]
__se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f39ffd9ddeb
Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
RSP: 002b:00007f3a00c3aec0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007f39ffd9ddeb
RDX: 0000000000000000 RSI: 0000000000005501 RDI: 0000000000000005
RBP: 00007f3a00c3bf90 R08: 0000000000000001 R09: 00000000ffffffff
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000200000000100 R14: 0000000000000000 R15: 0000000000000000
</TASK>
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017]
CPU: 0 UID: 0 PID: 5315 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:do_perf_trace_udc_log_req drivers/usb/gadget/udc/trace.h:242 [inline]
RIP: 0010:perf_trace_udc_log_req+0x30a/0x850 drivers/usb/gadget/udc/trace.h:223
Code: c6 3f 4c 89 f0 48 c1 e8 03 42 0f b6 04 28 84 c0 0f 85 18 03 00 00 41 c6 06 00 48 8b 54 24 18 4c 8d 72 10 4c 89 f0 48 c1 e8 03 <42> 0f b6 04 28 84 c0 0f 85 12 03 00 00 45 8b 26 4d 8d 77 0c 4c 89
RSP: 0018:ffffc9000f0876a0 EFLAGS: 00010202
RAX: 0000000000000002 RBX: ffffe8ffffc4ff00 RCX: 0000000000000065
RDX: 0000000000000000 RSI: ffffffff8cd37c40 RDI: ffffe8ffffc4ff40
RBP: ffffc9000f087788 R08: 0000000000000070 R09: 0000000000000030
R10: dffffc0000000000 R11: fffff91ffff89fe9 R12: 0000000000000004
R13: dffffc0000000000 R14: 0000000000000010 R15: ffffe8ffffc4ff00
FS: 00007f3a00c3d6c0(0000) GS:ffff88808c2c6000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f39ffd87780 CR3: 000000003ec4c000 CR4: 0000000000352ef0
Call Trace:
<TASK>
__do_trace_usb_ep_alloc_request drivers/usb/gadget/udc/trace.h:264 [inline]
trace_usb_ep_alloc_request drivers/usb/gadget/udc/trace.h:264 [inline]
usb_ep_alloc_request+0x23b/0x280 drivers/usb/gadget/udc/core.c:202
gadget_bind+0xec/0x610 drivers/usb/gadget/legacy/raw_gadget.c:294
gadget_bind_driver+0x2ca/0x9e0 drivers/usb/gadget/udc/core.c:1662
call_driver_probe drivers/base/dd.c:-1 [inline]
really_probe+0x254/0xae0 drivers/base/dd.c:706
__driver_probe_device+0x1e8/0x360 drivers/base/dd.c:868
driver_probe_device+0x4f/0x240 drivers/base/dd.c:898
__driver_attach+0x339/0x600 drivers/base/dd.c:1292
bus_for_each_dev+0x23b/0x2c0 drivers/base/bus.c:383
bus_add_driver+0x345/0x670 drivers/base/bus.c:763
driver_register+0x23a/0x320 drivers/base/driver.c:174
usb_gadget_register_driver_owner+0xf9/0x270 drivers/usb/gadget/udc/core.c:1752
raw_ioctl_run drivers/usb/gadget/legacy/raw_gadget.c:596 [inline]
raw_ioctl+0x1541/0x41c0 drivers/usb/gadget/legacy/raw_gadget.c:1307
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:597 [inline]
__se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:61 [inline]
do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f39ffd9ddeb
Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 24 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 1c 48 8b 44 24 18 64 48 2b 04 25 28 00 00
RSP: 002b:00007f3a00c3aec0 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007f39ffd9ddeb
RDX: 0000000000000000 RSI: 0000000000005501 RDI: 0000000000000005
RBP: 00007f3a00c3bf90 R08: 0000000000000001 R09: 00000000ffffffff
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000200000000100 R14: 0000000000000000 R15: 0000000000000000
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:do_perf_trace_udc_log_req drivers/usb/gadget/udc/trace.h:242 [inline]
RIP: 0010:perf_trace_udc_log_req+0x30a/0x850 drivers/usb/gadget/udc/trace.h:223
Code: c6 3f 4c 89 f0 48 c1 e8 03 42 0f b6 04 28 84 c0 0f 85 18 03 00 00 41 c6 06 00 48 8b 54 24 18 4c 8d 72 10 4c 89 f0 48 c1 e8 03 <42> 0f b6 04 28 84 c0 0f 85 12 03 00 00 45 8b 26 4d 8d 77 0c 4c 89
RSP: 0018:ffffc9000f0876a0 EFLAGS: 00010202
RAX: 0000000000000002 RBX: ffffe8ffffc4ff00 RCX: 0000000000000065
RDX: 0000000000000000 RSI: ffffffff8cd37c40 RDI: ffffe8ffffc4ff40
RBP: ffffc9000f087788 R08: 0000000000000070 R09: 0000000000000030
R10: dffffc0000000000 R11: fffff91ffff89fe9 R12: 0000000000000004
R13: dffffc0000000000 R14: 0000000000000010 R15: ffffe8ffffc4ff00
FS: 00007f3a00c3d6c0(0000) GS:ffff88808c2c6000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f39ffd87780 CR3: 000000003ec4c000 CR4: 0000000000352ef0
----------------
Code disassembly (best guess), 2 bytes skipped:
0: 4c 89 f0 mov %r14,%rax
3: 48 c1 e8 03 shr $0x3,%rax
7: 42 0f b6 04 28 movzbl (%rax,%r13,1),%eax
c: 84 c0 test %al,%al
e: 0f 85 18 03 00 00 jne 0x32c
14: 41 c6 06 00 movb $0x0,(%r14)
18: 48 8b 54 24 18 mov 0x18(%rsp),%rdx
1d: 4c 8d 72 10 lea 0x10(%rdx),%r14
21: 4c 89 f0 mov %r14,%rax
24: 48 c1 e8 03 shr $0x3,%rax
* 28: 42 0f b6 04 28 movzbl (%rax,%r13,1),%eax <-- trapping instruction
2d: 84 c0 test %al,%al
2f: 0f 85 12 03 00 00 jne 0x347
35: 45 8b 26 mov (%r14),%r12d
38: 4d 8d 77 0c lea 0xc(%r15),%r14
3c: 4c rex.WR
3d: 89 .byte 0x89
* Struck through repros no longer work on HEAD.