============================= WARNING: suspicious RCU usage 5.15.173-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 kworker/1:11/5077: #0: ffff888017070938 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x78a/0x10c0 kernel/workqueue.c:2283 #1: ffffc9000119fd20 ((work_completion)(&(&krcp->krw_arr[i].rcu_work)->work)){+.+.}-{0:0}, at: process_one_work+0x7d0/0x10c0 kernel/workqueue.c:2285 #2: ffffffff8c91fc60 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x9/0x30 include/linux/rcupdate.h:312 #3: ffff888063f4a948 (dev->qdisc_running_key ?: &qdisc_running_key){+...}-{0:0}, at: net_tx_action+0x73a/0x8e0 net/core/dev.c:5096 #4: ffff888063f4a908 (&sch->q.lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline] #4: ffff888063f4a908 (&sch->q.lock){+.-.}-{2:2}, at: sch_direct_xmit+0x370/0x5e0 net/sched/sch_generic.c:354 #5: ffffffff8c91fc60 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:311 stack backtrace: CPU: 1 PID: 5077 Comm: kworker/1:11 Not tainted 5.15.173-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/30/2024 Workqueue: events kfree_rcu_work Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1e3/0x2d0 lib/dump_stack.c:106 qdisc_lookup+0xa8/0x630 net/sched/sch_api.c:304 qdisc_tree_reduce_backlog+0x212/0x4f0 net/sched/sch_api.c:800 codel_qdisc_dequeue+0x1546/0x21d0 net/sched/sch_codel.c:102 qdisc_peek_dequeued+0x6f/0x220 include/net/sch_generic.h:1100 tbf_dequeue+0x80/0xd60 net/sched/sch_tbf.c:259 dequeue_skb net/sched/sch_generic.c:292 [inline] qdisc_restart net/sched/sch_generic.c:397 [inline] __qdisc_run+0x253/0x1e90 net/sched/sch_generic.c:415 qdisc_run+0x10d/0x320 include/net/pkt_sched.h:132 net_tx_action+0x73a/0x8e0 net/core/dev.c:5096 handle_softirqs+0x3a7/0x930 kernel/softirq.c:558 __do_softirq kernel/softirq.c:592 [inline] invoke_softirq kernel/softirq.c:432 [inline] __irq_exit_rcu+0x157/0x240 kernel/softirq.c:641 irq_exit_rcu+0x5/0x20 kernel/softirq.c:653 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:finish_lock_switch+0x91/0x100 kernel/sched/core.c:4782 Code: 45 31 c9 68 f7 aa 59 81 e8 9c 11 09 00 48 83 c4 08 4c 89 ff e8 50 db fe ff eb 32 4c 89 ff e8 e6 5a e4 08 e8 c1 46 2d 00 fb 5b <41> 5c 41 5d 41 5e 41 5f c3 44 89 f1 80 e1 07 80 c1 03 38 c1 7c 87 RSP: 0018:ffffc9000119f738 EFLAGS: 00000286 RAX: a6457487dd6c4d00 RBX: ffff8880207d0034 RCX: ffffffff81632d68 RDX: dffffc0000000000 RSI: ffffffff8a8b2a80 RDI: ffffffff8ad90540 RBP: ffffc9000119f7b0 R08: dffffc0000000000 R09: fffffbfff20ec828 R10: 0000000000000000 R11: dffffc0000000001 R12: dffffc0000000000 R13: 1ffff1101722760b R14: ffff8880b913b058 R15: ffff8880b903a300 finish_task_switch+0x134/0x630 kernel/sched/core.c:4899 context_switch kernel/sched/core.c:5030 [inline] __schedule+0x12cc/0x45b0 kernel/sched/core.c:6373 preempt_schedule_common+0x83/0xd0 kernel/sched/core.c:6549 preempt_schedule+0xd9/0xe0 kernel/sched/core.c:6574 preempt_schedule_thunk+0x16/0x18 arch/x86/entry/thunk_64.S:34 __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:161 [inline] _raw_spin_unlock_irqrestore+0x128/0x130 kernel/locking/spinlock.c:194 debug_rcu_head_unqueue kernel/rcu/rcu.h:185 [inline] debug_rcu_bhead_unqueue kernel/rcu/tree.c:3188 [inline] kfree_rcu_work+0x28f/0x7a0 kernel/rcu/tree.c:3287 process_one_work+0x8a1/0x10c0 kernel/workqueue.c:2310 worker_thread+0xaca/0x1280 kernel/workqueue.c:2457 kthread+0x3f6/0x4f0 kernel/kthread.c:334 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287 ---------------- Code disassembly (best guess): 0: 45 31 c9 xor %r9d,%r9d 3: 68 f7 aa 59 81 push $0xffffffff8159aaf7 8: e8 9c 11 09 00 call 0x911a9 d: 48 83 c4 08 add $0x8,%rsp 11: 4c 89 ff mov %r15,%rdi 14: e8 50 db fe ff call 0xfffedb69 19: eb 32 jmp 0x4d 1b: 4c 89 ff mov %r15,%rdi 1e: e8 e6 5a e4 08 call 0x8e45b09 23: e8 c1 46 2d 00 call 0x2d46e9 28: fb sti 29: 5b pop %rbx * 2a: 41 5c pop %r12 <-- trapping instruction 2c: 41 5d pop %r13 2e: 41 5e pop %r14 30: 41 5f pop %r15 32: c3 ret 33: 44 89 f1 mov %r14d,%ecx 36: 80 e1 07 and $0x7,%cl 39: 80 c1 03 add $0x3,%cl 3c: 38 c1 cmp %al,%cl 3e: 7c 87 jl 0xffffffc7