============================= 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 6 locks held by syz.2.570/6723: #0: ffff88807a53a0e0 (&type->s_umount_key#65/1){+.+.}-{3:3}, at: alloc_super+0x201/0x950 fs/super.c:229 #1: ffffffff8c11c460 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:311 #2: ffffffff8c11c460 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x9/0x30 include/linux/rcupdate.h:312 #3: ffff888029f6a148 (dev->qdisc_running_key ?: &qdisc_running_key){+...}-{0:0}, at: net_tx_action+0x6bc/0x870 net/core/dev.c:5128 #4: ffff888029f6a108 (&sch->q.lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline] #4: ffff888029f6a108 (&sch->q.lock){+.-.}-{2:2}, at: sch_direct_xmit+0x305/0x4a0 net/sched/sch_generic.c:354 #5: ffffffff8c11c460 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:311 stack backtrace: CPU: 0 PID: 6723 Comm: syz.2.570 Not tainted syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/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:793 fq_codel_dequeue+0x26a9/0x28c0 net/sched/sch_fq_codel.c:319 qdisc_peek_dequeued+0x6e/0x1f0 include/net/sch_generic.h:1115 tbf_dequeue+0x7d/0xce0 net/sched/sch_tbf.c:265 dequeue_skb net/sched/sch_generic.c:292 [inline] qdisc_restart net/sched/sch_generic.c:397 [inline] __qdisc_run+0x237/0x1480 net/sched/sch_generic.c:415 qdisc_run+0x103/0x2f0 include/net/pkt_sched.h:132 net_tx_action+0x6bc/0x870 net/core/dev.c:5128 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:lock_acquire+0x1f2/0x3f0 kernel/locking/lockdep.c:5627 Code: 00 9c 8f 84 24 80 00 00 00 f6 84 24 81 00 00 00 02 0f 85 f6 00 00 00 41 f7 c6 00 02 00 00 74 01 fb 48 c7 44 24 60 0e 36 e0 45 <4b> c7 44 3d 00 00 00 00 00 66 43 c7 44 3d 09 00 00 43 c6 44 3d 0b RSP: 0018:ffffc9000467f000 EFLAGS: 00000206 RAX: 0000000000000001 RBX: 0000000000000000 RCX: 4f9e4d7832b0ad00 RDX: 0000000000000000 RSI: ffffffff8a0b28c0 RDI: ffffffff8a59a240 RBP: ffffc9000467f118 R08: dffffc0000000000 R09: fffffbfff1ff7619 R10: fffffbfff1ff7619 R11: 1ffffffff1ff7618 R12: ffffffff8c11c460 R13: 1ffff920008cfe0c R14: 0000000000000246 R15: dffffc0000000000 rcu_lock_acquire+0x2a/0x30 include/linux/rcupdate.h:312 rcu_read_lock include/linux/rcupdate.h:739 [inline] blk_throtl_bio+0x14c/0x28d0 block/blk-throttle.c:2222 submit_bio_checks+0xd15/0x18f0 block/blk-core.c:880 __submit_bio+0x59e/0x810 block/blk-core.c:911 __submit_bio_noacct_mq block/blk-core.c:997 [inline] submit_bio_noacct+0x5f1/0x6d0 block/blk-core.c:1027 submit_bio+0x2be/0x560 block/blk-core.c:1089 submit_bio_wait+0x101/0x200 block/bio.c:1229 xfs_rw_bdev+0x46c/0x4f0 fs/xfs/xfs_bio_io.c:55 xlog_do_io+0x17a/0x340 fs/xfs/xfs_log_recover.c:147 xlog_bread+0x30/0xc0 fs/xfs/xfs_log_recover.c:178 xlog_rseek_logrec_hdr+0xfb/0x480 fs/xfs/xfs_log_recover.c:794 xlog_find_tail+0x102/0x9f0 fs/xfs/xfs_log_recover.c:1287 xlog_recover+0x48/0x420 fs/xfs/xfs_log_recover.c:3382 xfs_log_mount+0x393/0x6b0 fs/xfs/xfs_log.c:710 xfs_mountfs+0xb27/0x1b10 fs/xfs/xfs_mount.c:764 xfs_fs_fill_super+0x11a4/0x13f0 fs/xfs/xfs_super.c:1675 get_tree_bdev+0x3f1/0x610 fs/super.c:1325 vfs_get_tree+0x88/0x270 fs/super.c:1530 do_new_mount+0x24a/0xa40 fs/namespace.c:3025 do_mount fs/namespace.c:3368 [inline] __do_sys_mount fs/namespace.c:3576 [inline] __se_sys_mount+0x2d6/0x3c0 fs/namespace.c:3553 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:0x7f5c95dbe38a Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb a6 e8 de 1a 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f5c94023e68 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5 RAX: ffffffffffffffda RBX: 00007f5c94023ef0 RCX: 00007f5c95dbe38a RDX: 0000200000009700 RSI: 0000200000009740 RDI: 00007f5c94023eb0 RBP: 0000200000009700 R08: 00007f5c94023ef0 R09: 0000000004000000 R10: 0000000004000000 R11: 0000000000000246 R12: 0000200000009740 R13: 00007f5c94023eb0 R14: 000000000000975c R15: 00002000000000c0 vkms_vblank_simulate: vblank timer overrun vkms_vblank_simulate: vblank timer overrun vkms_vblank_simulate: vblank timer overrun vkms_vblank_simulate: vblank timer overrun ---------------- Code disassembly (best guess): 0: 00 9c 8f 84 24 80 00 add %bl,0x802484(%rdi,%rcx,4) 7: 00 00 add %al,(%rax) 9: f6 84 24 81 00 00 00 testb $0x2,0x81(%rsp) 10: 02 11: 0f 85 f6 00 00 00 jne 0x10d 17: 41 f7 c6 00 02 00 00 test $0x200,%r14d 1e: 74 01 je 0x21 20: fb sti 21: 48 c7 44 24 60 0e 36 movq $0x45e0360e,0x60(%rsp) 28: e0 45 * 2a: 4b c7 44 3d 00 00 00 movq $0x0,0x0(%r13,%r15,1) <-- trapping instruction 31: 00 00 33: 66 43 c7 44 3d 09 00 movw $0x0,0x9(%r13,%r15,1) 3a: 00 3b: 43 rex.XB 3c: c6 .byte 0xc6 3d: 44 rex.R 3e: 3d .byte 0x3d 3f: 0b .byte 0xb