============================= 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 8 locks held by kworker/1:17/7116: #0: ffff888016870938 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x760/0x1000 kernel/workqueue.c:-1 #1: ffffc9000395fd00 ((work_completion)(&(&nsim_dev->trap_data->trap_report_dw)->work)){+.+.}-{0:0}, at: process_one_work+0x7a3/0x1000 kernel/workqueue.c:2285 #2: ffff888061e25400 (&nsim_dev->port_list_lock#2){+.+.}-{3:3}, at: nsim_dev_trap_report_work+0x56/0xb40 drivers/net/netdevsim/dev.c:757 #3: ffff8880636f2ce0 (&nsim_trap_data->trap_lock){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline] #3: ffff8880636f2ce0 (&nsim_trap_data->trap_lock){+.+.}-{2:2}, at: nsim_dev_trap_report drivers/net/netdevsim/dev.c:707 [inline] #3: ffff8880636f2ce0 (&nsim_trap_data->trap_lock){+.+.}-{2:2}, at: nsim_dev_trap_report_work+0x1af/0xb40 drivers/net/netdevsim/dev.c:762 #4: ffffffff8c11bfa0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x9/0x30 include/linux/rcupdate.h:312 #5: ffff88802b004948 (dev->qdisc_running_key ?: &qdisc_running_key){+...}-{0:0}, at: net_tx_action+0x6bc/0x870 net/core/dev.c:5128 #6: ffff88802b004908 (&sch->q.lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline] #6: ffff88802b004908 (&sch->q.lock){+.-.}-{2:2}, at: sch_direct_xmit+0x305/0x4a0 net/sched/sch_generic.c:354 #7: ffffffff8c11bfa0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:311 stack backtrace: CPU: 1 PID: 7116 Comm: kworker/1:17 Not tainted 5.15.185-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025 Workqueue: events nsim_dev_trap_report_work 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 cake_dequeue+0x1b8f/0x4aa0 net/sched/sch_cake.c:2189 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:memset_erms+0x9/0x10 arch/x86/lib/memset_64.S:64 Code: c1 e9 03 40 0f b6 f6 48 b8 01 01 01 01 01 01 01 01 48 0f af c6 f3 48 ab 89 d1 f3 aa 4c 89 c8 c3 90 49 89 f9 40 88 f0 48 89 d1 aa 4c 89 c8 c3 90 49 89 fa 40 0f b6 ce 48 b8 01 01 01 01 01 01 RSP: 0018:ffffc9000395fa20 EFLAGS: 00010246 RAX: ffff888058226000 RBX: 0000000000000000 RCX: 0000000000000f00 RDX: 0000000000001000 RSI: 0000000000000000 RDI: ffff888058226100 RBP: 0000000000000001 R08: ffffc9000395faa8 R09: ffff888058226000 R10: 000000009e93b5d5 R11: 00000000e3831d40 R12: 0000000000000001 R13: ffff888016842140 R14: 0000000000082a20 R15: ffffc9000395faa8 slab_post_alloc_hook+0x68/0x380 mm/slab.h:521 slab_alloc_node mm/slub.c:3220 [inline] __kmalloc_node_track_caller+0x156/0x3a0 mm/slub.c:4958 kmalloc_reserve net/core/skbuff.c:356 [inline] __alloc_skb+0x22c/0x750 net/core/skbuff.c:427 alloc_skb include/linux/skbuff.h:1162 [inline] nsim_dev_trap_skb_build drivers/net/netdevsim/dev.c:664 [inline] nsim_dev_trap_report drivers/net/netdevsim/dev.c:721 [inline] nsim_dev_trap_report_work+0x2a1/0xb40 drivers/net/netdevsim/dev.c:762 process_one_work+0x863/0x1000 kernel/workqueue.c:2310 worker_thread+0xaa8/0x12a0 kernel/workqueue.c:2457 kthread+0x436/0x520 kernel/kthread.c:334 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:287 ---------------- Code disassembly (best guess): 0: c1 e9 03 shr $0x3,%ecx 3: 40 0f b6 f6 movzbl %sil,%esi 7: 48 b8 01 01 01 01 01 movabs $0x101010101010101,%rax e: 01 01 01 11: 48 0f af c6 imul %rsi,%rax 15: f3 48 ab rep stos %rax,%es:(%rdi) 18: 89 d1 mov %edx,%ecx 1a: f3 aa rep stos %al,%es:(%rdi) 1c: 4c 89 c8 mov %r9,%rax 1f: c3 ret 20: 90 nop 21: 49 89 f9 mov %rdi,%r9 24: 40 88 f0 mov %sil,%al 27: 48 89 d1 mov %rdx,%rcx * 2a: f3 aa rep stos %al,%es:(%rdi) <-- trapping instruction 2c: 4c 89 c8 mov %r9,%rax 2f: c3 ret 30: 90 nop 31: 49 89 fa mov %rdi,%r10 34: 40 0f b6 ce movzbl %sil,%ecx 38: 48 rex.W 39: b8 01 01 01 01 mov $0x1010101,%eax 3e: 01 01 add %eax,(%rcx)