============================= WARNING: suspicious RCU usage 5.15.185-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 5 locks held by syz-executor/4733: #0: ffffffff8c1f1da8 (remove_cache_srcu){....}-{0:0}, at: rcu_lock_acquire+0x0/0x30 #1: ffffffff8c11bfa0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x9/0x30 include/linux/rcupdate.h:312 #2: ffff888022336948 (dev->qdisc_running_key ?: &qdisc_running_key){+...}-{0:0}, at: net_tx_action+0x6bc/0x870 net/core/dev.c:5128 #3: ffff888022336908 (&sch->q.lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline] #3: ffff888022336908 (&sch->q.lock){+.-.}-{2:2}, at: sch_direct_xmit+0x305/0x4a0 net/sched/sch_generic.c:354 #4: ffffffff8c11bfa0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:311 stack backtrace: CPU: 1 PID: 4733 Comm: syz-executor Not tainted 5.15.185-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/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+0x213/0x4e0 net/sched/sch_api.c:800 codel_qdisc_dequeue+0x1523/0x2100 net/sched/sch_codel.c:102 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:free_unref_page+0x1c3/0x280 mm/page_alloc.c:3418 Code: c7 44 24 40 00 00 00 00 9c 8f 44 24 40 f6 44 24 41 02 0f 85 85 00 00 00 f7 c3 00 02 00 00 74 01 fb 48 c7 44 24 20 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:ffffc900030cf9e0 EFLAGS: 00000206 RAX: cc94f1174d3d6300 RBX: 0000000000000293 RCX: cc94f1174d3d6300 RDX: dffffc0000000000 RSI: ffffffff8a0b11c0 RDI: ffffffff8a59a740 RBP: ffffc900030cfab0 R08: dffffc0000000000 R09: fffffbfff1ad157e R10: fffffbfff1ad157e R11: 1ffffffff1ad157d R12: ffffffff8bbaf818 R13: 1ffff92000619f40 R14: ffffea00015e0b40 R15: dffffc0000000000 qlist_free_all+0x35/0x90 mm/kasan/quarantine.c:176 kasan_quarantine_reduce+0x150/0x160 mm/kasan/quarantine.c:283 __kasan_slab_alloc+0x2f/0xd0 mm/kasan/common.c:444 kasan_slab_alloc include/linux/kasan.h:254 [inline] slab_post_alloc_hook+0x4c/0x380 mm/slab.h:519 slab_alloc_node mm/slub.c:3220 [inline] slab_alloc mm/slub.c:3228 [inline] kmem_cache_alloc+0x100/0x290 mm/slub.c:3233 getname_flags+0xb5/0x500 fs/namei.c:138 user_path_at_empty+0x2a/0x190 fs/namei.c:2882 user_path_at include/linux/namei.h:57 [inline] ksys_umount fs/namespace.c:1777 [inline] __do_sys_umount fs/namespace.c:1785 [inline] __se_sys_umount fs/namespace.c:1783 [inline] __x64_sys_umount+0xf1/0x160 fs/namespace.c:1783 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:0x7f0dd9651c57 Code: a8 ff ff ff f7 d8 64 89 01 48 83 c8 ff c3 0f 1f 44 00 00 31 f6 e9 09 00 00 00 66 0f 1f 84 00 00 00 00 00 b8 a6 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 01 c3 48 c7 c2 a8 ff ff ff f7 d8 64 89 02 b8 RSP: 002b:00007ffc3e082ff8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6 RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0dd9651c57 RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007ffc3e0830b0 RBP: 00007ffc3e0830b0 R08: 0000000000000000 R09: 0000000000000000 R10: 00000000ffffffff R11: 0000000000000246 R12: 00007ffc3e084140 R13: 00007f0dd96d2925 R14: 0000000000030d57 R15: 00007ffc3e084180 ---------------- Code disassembly (best guess): 0: c7 44 24 40 00 00 00 movl $0x0,0x40(%rsp) 7: 00 8: 9c pushf 9: 8f 44 24 40 pop 0x40(%rsp) d: f6 44 24 41 02 testb $0x2,0x41(%rsp) 12: 0f 85 85 00 00 00 jne 0x9d 18: f7 c3 00 02 00 00 test $0x200,%ebx 1e: 74 01 je 0x21 20: fb sti 21: 48 c7 44 24 20 0e 36 movq $0x45e0360e,0x20(%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