============================================
WARNING: possible recursive locking detected
6.1.128-syzkaller #0 Not tainted
--------------------------------------------
swapper/1/0 is trying to acquire lock:
ffffc90003d590d8 (&rb->spinlock){-.-.}-{2:2}, at: __bpf_ringbuf_reserve+0x1e6/0x600 kernel/bpf/ringbuf.c:413
but task is already holding lock:
ffffc900049510d8 (&rb->spinlock){-.-.}-{2:2}, at: __bpf_ringbuf_reserve+0x1e6/0x600 kernel/bpf/ringbuf.c:413
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
4 locks held by swapper/1/0:
 #0: ffffffff8d32e740 (rcu_callback){....}-{0:0}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline]
 #0: ffffffff8d32e740 (rcu_callback){....}-{0:0}, at: rcu_do_batch kernel/rcu/tree.c:2291 [inline]
 #0: ffffffff8d32e740 (rcu_callback){....}-{0:0}, at: rcu_core+0xa6b/0x1820 kernel/rcu/tree.c:2557
 #1: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline]
 #1: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline]
 #1: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2283 [inline]
 #1: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run3+0x146/0x440 kernel/trace/bpf_trace.c:2324
 #2: ffffc900049510d8 (&rb->spinlock){-.-.}-{2:2}, at: __bpf_ringbuf_reserve+0x1e6/0x600 kernel/bpf/ringbuf.c:413
 #3: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline]
 #3: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline]
 #3: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2283 [inline]
 #3: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run2+0x110/0x410 kernel/trace/bpf_trace.c:2323
stack backtrace:
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.1.128-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Call Trace:
 
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1e3/0x2cb lib/dump_stack.c:106
 print_deadlock_bug kernel/locking/lockdep.c:2983 [inline]
 check_deadlock kernel/locking/lockdep.c:3026 [inline]
 validate_chain+0x4711/0x5950 kernel/locking/lockdep.c:3812
 __lock_acquire+0x125b/0x1f80 kernel/locking/lockdep.c:5049
 lock_acquire+0x1f8/0x5a0 kernel/locking/lockdep.c:5662
 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
 _raw_spin_lock_irqsave+0xd1/0x120 kernel/locking/spinlock.c:162
 __bpf_ringbuf_reserve+0x1e6/0x600 kernel/bpf/ringbuf.c:413
 ____bpf_ringbuf_output kernel/bpf/ringbuf.c:539 [inline]
 bpf_ringbuf_output+0x63/0x1e0 kernel/bpf/ringbuf.c:529
 bpf_prog_044b88d9c832e6f0+0x45/0x49
 bpf_dispatcher_nop_func include/linux/bpf.h:1000 [inline]
 __bpf_prog_run include/linux/filter.h:603 [inline]
 bpf_prog_run include/linux/filter.h:610 [inline]
 __bpf_trace_run kernel/trace/bpf_trace.c:2284 [inline]
 bpf_trace_run2+0x1fd/0x410 kernel/trace/bpf_trace.c:2323
 trace_contention_end+0x14c/0x190 include/trace/events/lock.h:122
 __pv_queued_spin_lock_slowpath+0x935/0xc50 kernel/locking/qspinlock.c:560
 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:591 [inline]
 queued_spin_lock_slowpath+0x42/0x50 arch/x86/include/asm/qspinlock.h:51
 queued_spin_lock include/asm-generic/qspinlock.h:114 [inline]
 do_raw_spin_lock+0x269/0x370 kernel/locking/spinlock_debug.c:115
 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline]
 _raw_spin_lock_irqsave+0xdd/0x120 kernel/locking/spinlock.c:162
 __bpf_ringbuf_reserve+0x1e6/0x600 kernel/bpf/ringbuf.c:413
 ____bpf_ringbuf_reserve kernel/bpf/ringbuf.c:464 [inline]
 bpf_ringbuf_reserve+0x58/0x70 kernel/bpf/ringbuf.c:456
 bpf_prog_fe0ed97373b08409+0x25/0x42
 bpf_dispatcher_nop_func include/linux/bpf.h:1000 [inline]
 __bpf_prog_run include/linux/filter.h:603 [inline]
 bpf_prog_run include/linux/filter.h:610 [inline]
 __bpf_trace_run kernel/trace/bpf_trace.c:2284 [inline]
 bpf_trace_run3+0x231/0x440 kernel/trace/bpf_trace.c:2324
 __bpf_trace_kmem_cache_free+0x99/0xc0 include/trace/events/kmem.h:114
 trace_kmem_cache_free include/trace/events/kmem.h:114 [inline]
 kmem_cache_free+0x418/0x510 mm/slub.c:3682
 rcu_do_batch kernel/rcu/tree.c:2297 [inline]
 rcu_core+0xade/0x1820 kernel/rcu/tree.c:2557
 handle_softirqs+0x2ee/0xa40 kernel/softirq.c:578
 __do_softirq kernel/softirq.c:612 [inline]
 invoke_softirq kernel/softirq.c:452 [inline]
 __irq_exit_rcu+0x157/0x240 kernel/softirq.c:661
 irq_exit_rcu+0x5/0x20 kernel/softirq.c:673
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1118 [inline]
 sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1118
 
 
 asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:691
RIP: 0010:native_save_fl arch/x86/include/asm/irqflags.h:22 [inline]
RIP: 0010:arch_local_save_flags arch/x86/include/asm/irqflags.h:70 [inline]
RIP: 0010:arch_irqs_disabled arch/x86/include/asm/irqflags.h:130 [inline]
RIP: 0010:acpi_safe_halt drivers/acpi/processor_idle.c:112 [inline]
RIP: 0010:acpi_idle_do_entry+0x10f/0x340 drivers/acpi/processor_idle.c:567
Code: 91 cf f6 48 83 e3 08 0f 85 0b 01 00 00 4c 8d 74 24 20 e8 44 4e d6 f6 0f 1f 44 00 00 e8 7a 8d cf f6 0f 00 2d 63 b0 ae 00 fb f4 <4c> 89 f3 48 c1 eb 03 42 80 3c 3b 00 74 08 4c 89 f7 e8 6b e4 26 f7
RSP: 0018:ffffc90000177b80 EFLAGS: 000002d3
RAX: ffffffff8abb0576 RBX: 0000000000000000 RCX: ffff888018c01dc0
RDX: 0000000000000000 RSI: ffffffff8b0c1d20 RDI: ffffffff8b5f6d00
RBP: ffffc90000177c10 R08: ffffffff8abb0558 R09: ffffed10031803b9
R10: 0000000000000000 R11: dffffc0000000001 R12: 1ffff9200002ef70
R13: ffff888141b29804 R14: ffffc90000177ba0 R15: dffffc0000000000
 acpi_idle_enter+0x352/0x4f0 drivers/acpi/processor_idle.c:704
 cpuidle_enter_state+0x516/0xf80 drivers/cpuidle/cpuidle.c:239
 cpuidle_enter+0x59/0x90 drivers/cpuidle/cpuidle.c:356
 call_cpuidle kernel/sched/idle.c:155 [inline]
 cpuidle_idle_call kernel/sched/idle.c:236 [inline]
 do_idle+0x3ce/0x680 kernel/sched/idle.c:303
 cpu_startup_entry+0x3d/0x60 kernel/sched/idle.c:401
 start_secondary+0xe4/0xf0 arch/x86/kernel/smpboot.c:281
 secondary_startup_64_no_verify+0xcf/0xdb
 
----------------
Code disassembly (best guess):
   0:	91                   	xchg   %eax,%ecx
   1:	cf                   	iret
   2:	f6 48 83 e3          	testb  $0xe3,-0x7d(%rax)
   6:	08 0f                	or     %cl,(%rdi)
   8:	85 0b                	test   %ecx,(%rbx)
   a:	01 00                	add    %eax,(%rax)
   c:	00 4c 8d 74          	add    %cl,0x74(%rbp,%rcx,4)
  10:	24 20                	and    $0x20,%al
  12:	e8 44 4e d6 f6       	call   0xf6d64e5b
  17:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
  1c:	e8 7a 8d cf f6       	call   0xf6cf8d9b
  21:	0f 00 2d 63 b0 ae 00 	verw   0xaeb063(%rip)        # 0xaeb08b
  28:	fb                   	sti
  29:	f4                   	hlt
* 2a:	4c 89 f3             	mov    %r14,%rbx <-- trapping instruction
  2d:	48 c1 eb 03          	shr    $0x3,%rbx
  31:	42 80 3c 3b 00       	cmpb   $0x0,(%rbx,%r15,1)
  36:	74 08                	je     0x40
  38:	4c 89 f7             	mov    %r14,%rdi
  3b:	e8 6b e4 26 f7       	call   0xf726e4ab