=============================
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