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