vkms_vblank_simulate: vblank timer overrun
=============================
WARNING: suspicious RCU usage
syzkaller #0 Not tainted
-----------------------------
net/sched/sch_api.c:304 suspicious rcu_dereference_protected() usage!
other info that might help us debug this:
rcu_scheduler_active = 2, debug_locks = 1
4 locks held by syz.4.396/6322:
#0: ffff888024e1b770 (&f->f_pos_lock){+.+.}-{3:3}, at: __fdget_pos+0x2bf/0x370 fs/file.c:1056
#1: ffffc90000dd0c00 ((&q->perturb_timer)){+.-.}-{0:0}, at: lockdep_copy_map include/linux/lockdep.h:45 [inline]
#1: ffffc90000dd0c00 ((&q->perturb_timer)){+.-.}-{0:0}, at: call_timer_fn+0xbb/0x530 kernel/time/timer.c:1441
#2: ffff888078389108 (&sch->q.lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:364 [inline]
#2: ffff888078389108 (&sch->q.lock){+.-.}-{2:2}, at: sfq_perturbation+0x12e/0x2060 net/sched/sch_sfq.c:610
#3: ffffffff8c11c720 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:312
stack backtrace:
CPU: 1 PID: 6322 Comm: syz.4.396 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
Call Trace:
dump_stack_lvl+0x168/0x230 lib/dump_stack.c:106
qdisc_lookup+0xa6/0x650 net/sched/sch_api.c:304
qdisc_tree_reduce_backlog+0x190/0x430 net/sched/sch_api.c:783
sfq_rehash net/sched/sch_sfq.c:598 [inline]
sfq_perturbation+0x1f20/0x2060 net/sched/sch_sfq.c:613
call_timer_fn+0x16c/0x530 kernel/time/timer.c:1451
expire_timers kernel/time/timer.c:1496 [inline]
__run_timers+0x525/0x7c0 kernel/time/timer.c:1767
handle_softirqs+0x328/0x820 kernel/softirq.c:576
__do_softirq kernel/softirq.c:610 [inline]
invoke_softirq kernel/softirq.c:450 [inline]
__irq_exit_rcu+0x12f/0x220 kernel/softirq.c:659
irq_exit_rcu+0x5/0x20 kernel/softirq.c:671
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1108 [inline]
sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1108
asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:676
RIP: 0010:preempt_schedule_irq+0xac/0x150 kernel/sched/core.c:6799
Code: 44 24 20 f6 44 24 21 02 74 0b 0f 0b 48 f7 03 08 00 00 00 74 70 bf 01 00 00 00 e8 af 44 a7 f7 e8 fa bd d3 f7 fb bf 01 00 00 00 ef b5 ff ff 48 c7 44 24 40 00 00 00 00 9c 8f 44 24 40 8b 44 24
RSP: 0018:ffffc900034ef8c0 EFLAGS: 00000282
RAX: 453f70c5c03b2d00 RBX: 0000000000000000 RCX: 453f70c5c03b2d00
RDX: dffffc0000000000 RSI: ffffffff8a0b1be0 RDI: 0000000000000001
RBP: ffffc900034ef960 R08: dffffc0000000000 R09: fffffbfff1ff542f
R10: fffffbfff1ff542f R11: 1ffffffff1ff542e R12: 0000000000000000
R13: 0000000000000000 R14: dffffc0000000000 R15: 1ffff9200069df18
irqentry_exit+0x63/0x70 kernel/entry/common.c:432
asm_sysvec_reschedule_ipi+0x16/0x20 arch/x86/include/asm/idtentry.h:681
RIP: 0010:dump_stack_lvl+0x1d0/0x230 lib/dump_stack.c:108
Code: e8 c5 b0 dd f7 49 21 de 75 61 e8 db ac dd f7 4d 85 ed 75 07 e8 d1 ac dd f7 eb 06 e8 ca ac dd f7 fb 48 c7 44 24 20 0e 36 e0 45 <4b> c7 04 27 00 00 00 00 43 c7 44 27 09 00 00 00 00 66 43 c7 44 27
RSP: 0018:ffffc900034efa20 EFLAGS: 00000293
RAX: ffffffff899a1f46 RBX: 0000000000000082 RCX: ffff88807e1f5940
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc900034efb20 R08: dffffc0000000000 R09: fffffbfff1ff542f
R10: fffffbfff1ff542f R11: 1ffffffff1ff542e R12: dffffc0000000000
R13: 0000000000000200 R14: 0000000000000000 R15: 1ffff9200069df48
fail_dump lib/fault-inject.c:52 [inline]
should_fail+0x38c/0x4c0 lib/fault-inject.c:146
_copy_to_user+0x2e/0x130 lib/usercopy.c:36
copy_to_user include/linux/uaccess.h:200 [inline]
simple_read_from_buffer+0xe3/0x150 fs/libfs.c:741
proc_fail_nth_read+0x19a/0x210 fs/proc/base.c:1485
vfs_read+0x2f6/0xcf0 fs/read_write.c:483
ksys_read+0x14d/0x250 fs/read_write.c:623
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x4c/0xa0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7f6ff444a15c
Code: ec 28 48 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 99 93 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 34 44 89 c7 48 89 44 24 08 e8 ef 93 02 00 48
RSP: 002b:00007f6ff26b2030 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
RAX: ffffffffffffffda RBX: 00007f6ff46a1fa0 RCX: 00007f6ff444a15c
RDX: 000000000000000f RSI: 00007f6ff26b20a0 RDI: 0000000000000007
RBP: 00007f6ff26b2090 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001
R13: 00007f6ff46a2038 R14: 00007f6ff46a1fa0 R15: 00007ffd5abfeca8
vkms_vblank_simulate: vblank timer overrun
----------------
Code disassembly (best guess):
0: 44 24 20 rex.R and $0x20,%al
3: f6 44 24 21 02 testb $0x2,0x21(%rsp)
8: 74 0b je 0x15
a: 0f 0b ud2
c: 48 f7 03 08 00 00 00 testq $0x8,(%rbx)
13: 74 70 je 0x85
15: bf 01 00 00 00 mov $0x1,%edi
1a: e8 af 44 a7 f7 call 0xf7a744ce
1f: e8 fa bd d3 f7 call 0xf7d3be1e
24: fb sti
25: bf 01 00 00 00 mov $0x1,%edi
* 2a: e8 ef b5 ff ff call 0xffffb61e <-- trapping instruction
2f: 48 c7 44 24 40 00 00 movq $0x0,0x40(%rsp)
36: 00 00
38: 9c pushf
39: 8f 44 24 40 pop 0x40(%rsp)
3d: 8b .byte 0x8b
3e: 44 rex.R
3f: 24 .byte 0x24