============================================ WARNING: possible recursive locking detected syzkaller #0 Not tainted -------------------------------------------- syz.8.1641/12063 is trying to acquire lock: ffffc900122d40d8 (&rb->spinlock){-.-.}-{2:2}, at: __bpf_ringbuf_reserve+0x1c7/0x5a0 kernel/bpf/ringbuf.c:423 but task is already holding lock: ffffc900122c00d8 (&rb->spinlock){-.-.}-{2:2}, at: __bpf_ringbuf_reserve+0x1c7/0x5a0 kernel/bpf/ringbuf.c:423 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&rb->spinlock); lock(&rb->spinlock); *** DEADLOCK *** May be due to missing lock nesting notation 5 locks held by syz.8.1641/12063: #0: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #0: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #0: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: class_rcu_constructor include/linux/rcupdate.h:1155 [inline] #0: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: unwind_next_frame+0xa5/0x2390 arch/x86/kernel/unwind_orc.c:479 #1: ffff8880b8739f98 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x2a/0x140 kernel/sched/core.c:636 #2: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #2: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #2: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2256 [inline] #2: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: bpf_trace_run2+0x186/0x4b0 kernel/trace/bpf_trace.c:2298 #3: ffffc900122c00d8 (&rb->spinlock){-.-.}-{2:2}, at: __bpf_ringbuf_reserve+0x1c7/0x5a0 kernel/bpf/ringbuf.c:423 #4: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #4: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #4: ffffffff8e139ea0 (rcu_read_lock){....}-{1:3}, at: trace_call_bpf+0xb7/0x850 kernel/trace/bpf_trace.c:-1 stack backtrace: CPU: 1 UID: 0 PID: 12063 Comm: syz.8.1641 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025 Call Trace: dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120 print_deadlock_bug+0x28b/0x2a0 kernel/locking/lockdep.c:3041 check_deadlock kernel/locking/lockdep.c:3093 [inline] validate_chain+0x1a3f/0x2140 kernel/locking/lockdep.c:3895 __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237 lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162 __bpf_ringbuf_reserve+0x1c7/0x5a0 kernel/bpf/ringbuf.c:423 ____bpf_ringbuf_reserve kernel/bpf/ringbuf.c:474 [inline] bpf_ringbuf_reserve+0x5c/0x70 kernel/bpf/ringbuf.c:466 bpf_prog_df2ea1bb7efca089+0x36/0x54 bpf_dispatcher_nop_func include/linux/bpf.h:1332 [inline] __bpf_prog_run include/linux/filter.h:718 [inline] bpf_prog_run include/linux/filter.h:725 [inline] bpf_prog_run_array include/linux/bpf.h:2292 [inline] trace_call_bpf+0x326/0x850 kernel/trace/bpf_trace.c:146 perf_trace_run_bpf_submit+0x78/0x170 kernel/events/core.c:10911 do_perf_trace_contention_end include/trace/events/lock.h:122 [inline] perf_trace_contention_end+0x253/0x2f0 include/trace/events/lock.h:122 __do_trace_contention_end include/trace/events/lock.h:122 [inline] trace_contention_end+0x111/0x140 include/trace/events/lock.h:122 __pv_queued_spin_lock_slowpath+0x9f9/0xb60 kernel/locking/qspinlock.c:374 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:557 [inline] queued_spin_lock_slowpath+0x43/0x50 arch/x86/include/asm/qspinlock.h:51 queued_spin_lock include/asm-generic/qspinlock.h:114 [inline] do_raw_spin_lock+0x21f/0x290 kernel/locking/spinlock_debug.c:116 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline] _raw_spin_lock_irqsave+0xb3/0xf0 kernel/locking/spinlock.c:162 __bpf_ringbuf_reserve+0x1c7/0x5a0 kernel/bpf/ringbuf.c:423 ____bpf_ringbuf_output kernel/bpf/ringbuf.c:549 [inline] bpf_ringbuf_output+0x69/0x1f0 kernel/bpf/ringbuf.c:539 bpf_prog_d99cac1b45e4481d+0x75/0x7d bpf_dispatcher_nop_func include/linux/bpf.h:1332 [inline] __bpf_prog_run include/linux/filter.h:718 [inline] bpf_prog_run include/linux/filter.h:725 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2257 [inline] bpf_trace_run2+0x281/0x4b0 kernel/trace/bpf_trace.c:2298 __bpf_trace_tlb_flush+0xf5/0x150 include/trace/events/tlb.h:38 __do_trace_tlb_flush include/trace/events/tlb.h:38 [inline] trace_tlb_flush+0x115/0x140 include/trace/events/tlb.h:38 switch_mm_irqs_off+0x53e/0x7a0 arch/x86/mm/tlb.c:-1 context_switch kernel/sched/core.c:5341 [inline] __schedule+0x110e/0x4cc0 kernel/sched/core.c:6961 preempt_schedule_irq+0xb5/0x150 kernel/sched/core.c:7288 irqentry_exit+0x6f/0x90 kernel/entry/common.c:197 asm_sysvec_reschedule_ipi+0x1a/0x20 arch/x86/include/asm/idtentry.h:707 RIP: 0010:lock_acquire+0x175/0x360 kernel/locking/lockdep.c:5872 Code: 00 00 00 00 9c 8f 44 24 30 f7 44 24 30 00 02 00 00 0f 85 cd 00 00 00 f7 44 24 08 00 02 00 00 74 01 fb 65 48 8b 05 4b e3 02 11 <48> 3b 44 24 58 0f 85 f2 00 00 00 48 83 c4 60 5b 41 5c 41 5d 41 5e RSP: 0018:ffffc9000b7ff1b8 EFLAGS: 00000206 RAX: 0f036595e5cd3600 RBX: 0000000000000000 RCX: 0f036595e5cd3600 RDX: 0000000000000001 RSI: ffffffff8dba5b5c RDI: ffffffff8be33280 RBP: ffffffff8172c195 R08: 0000000000000000 R09: ffffffff8172c195 R10: ffffc9000b7ff388 R11: fffff520016ffe7d R12: 0000000000000002 R13: ffffffff8e139ea0 R14: 0000000000000000 R15: 0000000000000246 rcu_lock_acquire include/linux/rcupdate.h:331 [inline] rcu_read_lock include/linux/rcupdate.h:841 [inline] class_rcu_constructor include/linux/rcupdate.h:1155 [inline] unwind_next_frame+0xc2/0x2390 arch/x86/kernel/unwind_orc.c:479 __unwind_start+0x5b9/0x760 arch/x86/kernel/unwind_orc.c:758 unwind_start arch/x86/include/asm/unwind.h:64 [inline] arch_stack_walk+0xe4/0x150 arch/x86/kernel/stacktrace.c:24 stack_trace_save+0x9c/0xe0 kernel/stacktrace.c:122 save_stack+0xf5/0x1f0 mm/page_owner.c:156 __reset_page_owner+0x71/0x1f0 mm/page_owner.c:308 reset_page_owner include/linux/page_owner.h:25 [inline] free_pages_prepare mm/page_alloc.c:1395 [inline] __free_frozen_pages+0xbc4/0xd30 mm/page_alloc.c:2895 __kasan_populate_vmalloc mm/kasan/shadow.c:383 [inline] kasan_populate_vmalloc+0x18a/0x1a0 mm/kasan/shadow.c:417 alloc_vmap_area+0xd51/0x1490 mm/vmalloc.c:2092 __get_vm_area_node+0x1f8/0x300 mm/vmalloc.c:3187 __vmalloc_node_range_noprof+0x301/0x12f0 mm/vmalloc.c:3853 __vmalloc_node_noprof mm/vmalloc.c:3956 [inline] __vmalloc_noprof+0xb1/0xf0 mm/vmalloc.c:3970 bpf_prog_alloc_no_stats+0x4a/0x4b0 kernel/bpf/core.c:104 bpf_prog_alloc+0x3c/0x1a0 kernel/bpf/core.c:150 bpf_prog_load+0x735/0x1930 kernel/bpf/syscall.c:2889 __sys_bpf+0x528/0x870 kernel/bpf/syscall.c:6029 __do_sys_bpf kernel/bpf/syscall.c:6139 [inline] __se_sys_bpf kernel/bpf/syscall.c:6137 [inline] __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:6137 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f0e0938ebe9 Code: Unable to access opcode bytes at 0x7f0e0938ebbf. RSP: 002b:00007f0e0a1e8038 EFLAGS: 00000246 ORIG_RAX: 0000000000000141 RAX: ffffffffffffffda RBX: 00007f0e095b5fa0 RCX: 00007f0e0938ebe9 RDX: 0000000000000094 RSI: 00002000000018c0 RDI: 0000000000000005 RBP: 00007f0e09411e19 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f0e095b6038 R14: 00007f0e095b5fa0 R15: 00007ffc23f12eb8 ---------------- Code disassembly (best guess): 0: 00 00 add %al,(%rax) 2: 00 00 add %al,(%rax) 4: 9c pushf 5: 8f 44 24 30 pop 0x30(%rsp) 9: f7 44 24 30 00 02 00 testl $0x200,0x30(%rsp) 10: 00 11: 0f 85 cd 00 00 00 jne 0xe4 17: f7 44 24 08 00 02 00 testl $0x200,0x8(%rsp) 1e: 00 1f: 74 01 je 0x22 21: fb sti 22: 65 48 8b 05 4b e3 02 mov %gs:0x1102e34b(%rip),%rax # 0x1102e375 29: 11 * 2a: 48 3b 44 24 58 cmp 0x58(%rsp),%rax <-- trapping instruction 2f: 0f 85 f2 00 00 00 jne 0x127 35: 48 83 c4 60 add $0x60,%rsp 39: 5b pop %rbx 3a: 41 5c pop %r12 3c: 41 5d pop %r13 3e: 41 5e pop %r14