syzbot
UBSAN: array-index-out-of-bounds in __pm_runtime_resume
Status:
premoderation: reported C repro on 2026/08/24 16:19
Reported-by: syzbot+069a4d947d52bc103c11@syzkaller.appspotmail.com
First crash: 6d01h, last: 4d08h
Sample crash report:
------------[ cut here ]------------
UBSAN: array-index-out-of-bounds in kernel/locking/qspinlock.c:131:9
index 16382 is out of range for type 'unsigned long[8]'
CPU: 0 UID: 0 PID: 387 Comm: syz.2.18 Not tainted syzkaller #0 9a2c17613351c9eac8e18d74829f474689ac6bc1
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
Call Trace:
<TASK>
__dump_stack+0x21/0x30 lib/dump_stack.c:94
dump_stack_lvl+0x140/0x1c0 lib/dump_stack.c:120
dump_stack+0x19/0x20 lib/dump_stack.c:129
ubsan_epilogue+0xe/0x40 lib/ubsan.c:231
__ubsan_handle_out_of_bounds+0xe8/0xf0 lib/ubsan.c:429
decode_tail kernel/locking/qspinlock.c:131 [inline]
__pv_queued_spin_lock_slowpath+0xbf7/0xe90 kernel/locking/qspinlock.c:468
pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:584 [inline]
queued_spin_lock_slowpath arch/x86/include/asm/qspinlock.h:51 [inline]
queued_spin_lock include/asm-generic/qspinlock.h:114 [inline]
do_raw_spin_lock include/linux/spinlock.h:187 [inline]
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline]
_raw_spin_lock_irqsave+0x153/0x160 kernel/locking/spinlock.c:162
__pm_runtime_resume+0x60/0xa0 drivers/base/power/runtime.c:1179
pm_runtime_resume_and_get include/linux/pm_runtime.h:436 [inline]
usb_autopm_get_interface+0x25/0xf0 drivers/usb/core/driver.c:1888
usbhid_power+0x84/0xd0 drivers/hid/usbhid/hid-core.c:1284
hid_hw_power include/linux/hid.h:1174 [inline]
hidraw_open+0x257/0x960 drivers/hid/hidraw.c:302
chrdev_open+0x4e8/0x610 fs/char_dev.c:414
do_dentry_open+0x97f/0x1510 fs/open.c:960
vfs_open+0x86/0x240 fs/open.c:1092
do_open fs/namei.c:3782 [inline]
path_openat+0x2c49/0x35a0 fs/namei.c:3941
do_filp_open+0x1f2/0x440 fs/namei.c:3968
do_sys_openat2+0x134/0x1d0 fs/open.c:1440
do_sys_open fs/open.c:1455 [inline]
__do_sys_openat fs/open.c:1471 [inline]
__se_sys_openat fs/open.c:1466 [inline]
__x64_sys_openat+0x13a/0x170 fs/open.c:1466
x64_sys_call+0xe69/0x2ee0 arch/x86/include/generated/asm/syscalls_64.h:258
do_syscall_x64 arch/x86/entry/common.c:47 [inline]
do_syscall_64+0x57/0xf0 arch/x86/entry/common.c:78
entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x7f2995759257
Code: 48 89 fa 4c 89 df e8 a8 56 00 00 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 1a 5b c3 0f 1f 84 00 00 00 00 00 48 8b 44 24 10 0f 05 <5b> c3 0f 1f 80 00 00 00 00 83 e2 39 83 fa 08 75 de e8 23 ff ff ff
RSP: 002b:00007ffc1499d1e0 EFLAGS: 00000202 ORIG_RAX: 0000000000000101
RAX: ffffffffffffffda RBX: 00005555562ff500 RCX: 00007f2995759257
RDX: 000000000014e000 RSI: 00007ffc1499d2a0 RDI: ffffffffffffff9c
RBP: 00007ffc1499d2a0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000202 R12: cccccccccccccccd
R13: 00007f2995a25fac R14: 00007f2995a25fa0 R15: 00007f2995a25fa0
</TASK>
---[ end trace ]---
Oops: general protection fault, probably for non-canonical address 0xff46149abf46b9e9: 0000 [#1] PREEMPT SMP KASAN PTI
KASAN: maybe wild-memory-access in range [0xfa30c4d5fa35cf48-0xfa30c4d5fa35cf4f]
CPU: 0 UID: 0 PID: 387 Comm: syz.2.18 Not tainted syzkaller #0 9a2c17613351c9eac8e18d74829f474689ac6bc1
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
RIP: 0010:__pv_queued_spin_lock_slowpath+0x38c/0xe90 kernel/locking/qspinlock.c:471
Code: fc ff df 80 3c 10 00 74 17 48 89 df e8 1d 6e 39 fc 48 8b 7c 24 10 48 ba 00 00 00 00 00 fc ff df 4c 03 3b 4c 89 f8 48 c1 e8 03 <80> 3c 10 00 74 17 4c 89 ff e8 16 6f 39 fc 48 8b 7c 24 10 48 ba 00
RSP: 0018:ffffc900010ef4c0 EFLAGS: 00010802
RAX: 1f46189abf46b9e9 RBX: ffffffff8721cb70 RCX: ffff888116881300
RDX: dffffc0000000000 RSI: 0000000000000001 RDI: ffffffff87d52ac4
RBP: ffffc900010ef5d0 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffffbfff1176e80 R12: 1ffff1103edca161
R13: 1ffffffff0faa558 R14: ffff8881f6e50b00 R15: fa30c4d5fa35cf49
FS: 00005555562ff500(0000) GS:ffff8881f6e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000200000002300 CR3: 0000000116802000 CR4: 00000000003526b0
Call Trace:
<TASK>
pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:584 [inline]
queued_spin_lock_slowpath arch/x86/include/asm/qspinlock.h:51 [inline]
queued_spin_lock include/asm-generic/qspinlock.h:114 [inline]
do_raw_spin_lock include/linux/spinlock.h:187 [inline]
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline]
_raw_spin_lock_irqsave+0x153/0x160 kernel/locking/spinlock.c:162
__pm_runtime_resume+0x60/0xa0 drivers/base/power/runtime.c:1179
pm_runtime_resume_and_get include/linux/pm_runtime.h:436 [inline]
usb_autopm_get_interface+0x25/0xf0 drivers/usb/core/driver.c:1888
usbhid_power+0x84/0xd0 drivers/hid/usbhid/hid-core.c:1284
hid_hw_power include/linux/hid.h:1174 [inline]
hidraw_open+0x257/0x960 drivers/hid/hidraw.c:302
chrdev_open+0x4e8/0x610 fs/char_dev.c:414
do_dentry_open+0x97f/0x1510 fs/open.c:960
vfs_open+0x86/0x240 fs/open.c:1092
do_open fs/namei.c:3782 [inline]
path_openat+0x2c49/0x35a0 fs/namei.c:3941
do_filp_open+0x1f2/0x440 fs/namei.c:3968
do_sys_openat2+0x134/0x1d0 fs/open.c:1440
do_sys_open fs/open.c:1455 [inline]
__do_sys_openat fs/open.c:1471 [inline]
__se_sys_openat fs/open.c:1466 [inline]
__x64_sys_openat+0x13a/0x170 fs/open.c:1466
x64_sys_call+0xe69/0x2ee0 arch/x86/include/generated/asm/syscalls_64.h:258
do_syscall_x64 arch/x86/entry/common.c:47 [inline]
do_syscall_64+0x57/0xf0 arch/x86/entry/common.c:78
entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x7f2995759257
Code: 48 89 fa 4c 89 df e8 a8 56 00 00 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 1a 5b c3 0f 1f 84 00 00 00 00 00 48 8b 44 24 10 0f 05 <5b> c3 0f 1f 80 00 00 00 00 83 e2 39 83 fa 08 75 de e8 23 ff ff ff
RSP: 002b:00007ffc1499d1e0 EFLAGS: 00000202 ORIG_RAX: 0000000000000101
RAX: ffffffffffffffda RBX: 00005555562ff500 RCX: 00007f2995759257
RDX: 000000000014e000 RSI: 00007ffc1499d2a0 RDI: ffffffffffffff9c
RBP: 00007ffc1499d2a0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000202 R12: cccccccccccccccd
R13: 00007f2995a25fac R14: 00007f2995a25fa0 R15: 00007f2995a25fa0
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:__pv_queued_spin_lock_slowpath+0x38c/0xe90 kernel/locking/qspinlock.c:471
Code: fc ff df 80 3c 10 00 74 17 48 89 df e8 1d 6e 39 fc 48 8b 7c 24 10 48 ba 00 00 00 00 00 fc ff df 4c 03 3b 4c 89 f8 48 c1 e8 03 <80> 3c 10 00 74 17 4c 89 ff e8 16 6f 39 fc 48 8b 7c 24 10 48 ba 00
RSP: 0018:ffffc900010ef4c0 EFLAGS: 00010802
RAX: 1f46189abf46b9e9 RBX: ffffffff8721cb70 RCX: ffff888116881300
RDX: dffffc0000000000 RSI: 0000000000000001 RDI: ffffffff87d52ac4
RBP: ffffc900010ef5d0 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffffbfff1176e80 R12: 1ffff1103edca161
R13: 1ffffffff0faa558 R14: ffff8881f6e50b00 R15: fa30c4d5fa35cf49
FS: 00005555562ff500(0000) GS:ffff8881f6e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000200000002300 CR3: 0000000116802000 CR4: 00000000003526b0
----------------
Code disassembly (best guess), 3 bytes skipped:
0: 80 3c 10 00 cmpb $0x0,(%rax,%rdx,1)
4: 74 17 je 0x1d
6: 48 89 df mov %rbx,%rdi
9: e8 1d 6e 39 fc call 0xfc396e2b
e: 48 8b 7c 24 10 mov 0x10(%rsp),%rdi
13: 48 ba 00 00 00 00 00 movabs $0xdffffc0000000000,%rdx
1a: fc ff df
1d: 4c 03 3b add (%rbx),%r15
20: 4c 89 f8 mov %r15,%rax
23: 48 c1 e8 03 shr $0x3,%rax
* 27: 80 3c 10 00 cmpb $0x0,(%rax,%rdx,1) <-- trapping instruction
2b: 74 17 je 0x44
2d: 4c 89 ff mov %r15,%rdi
30: e8 16 6f 39 fc call 0xfc396f4b
35: 48 8b 7c 24 10 mov 0x10(%rsp),%rdi
3a: 48 rex.W
3b: ba .byte 0xba
* Struck through repros no longer work on HEAD.