============================================ WARNING: possible recursive locking detected 6.1.125-syzkaller #0 Not tainted -------------------------------------------- syz-executor/2866 is trying to acquire lock: ffffc90000f2d0d8 (&rb->spinlock){..-.}-{2:2}, at: __bpf_ringbuf_reserve+0x92/0x1d0 kernel/bpf/ringbuf.c:413 but task is already holding lock: ffffc90000fe50d8 (&rb->spinlock){..-.}-{2:2}, at: __bpf_ringbuf_reserve+0x92/0x1d0 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 syz-executor/2866: #0: ffff88810965a358 (&disk->open_mutex){+.+.}-{3:3}, at: blkdev_get_by_dev+0x9b/0x2f0 block/bdev.c:815 #1: ffffffff83186d60 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline] #1: ffffffff83186d60 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline] #1: ffffffff83186d60 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2283 [inline] #1: ffffffff83186d60 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run2+0x50/0x190 kernel/trace/bpf_trace.c:2323 #2: ffffc90000fe50d8 (&rb->spinlock){..-.}-{2:2}, at: __bpf_ringbuf_reserve+0x92/0x1d0 kernel/bpf/ringbuf.c:413 #3: ffffffff83186d60 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline] #3: ffffffff83186d60 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline] #3: ffffffff83186d60 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2283 [inline] #3: ffffffff83186d60 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run2+0x50/0x190 kernel/trace/bpf_trace.c:2323 stack backtrace: CPU: 1 PID: 2866 Comm: syz-executor Not tainted 6.1.125-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x89/0xd7 lib/dump_stack.c:106 __lock_acquire+0x73d/0x2830 lock_acquire+0xe3/0x270 kernel/locking/lockdep.c:5662 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x5d/0x90 kernel/locking/spinlock.c:162 __bpf_ringbuf_reserve+0x92/0x1d0 kernel/bpf/ringbuf.c:413 ____bpf_ringbuf_reserve kernel/bpf/ringbuf.c:464 [inline] bpf_ringbuf_reserve+0x11/0x20 kernel/bpf/ringbuf.c:456 ___bpf_prog_run+0x816/0x1b20 kernel/bpf/core.c:1846 __bpf_prog_run32+0xb7/0xe0 kernel/bpf/core.c:2072 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+0xc3/0x190 kernel/trace/bpf_trace.c:2323 __traceiter_contention_begin+0x26/0x40 include/trace/events/lock.h:95 trace_contention_begin include/trace/events/lock.h:95 [inline] __pv_queued_spin_lock_slowpath+0x419/0x480 kernel/locking/qspinlock.c:405 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:591 [inline] queued_spin_lock_slowpath arch/x86/include/asm/qspinlock.h:51 [inline] queued_spin_lock include/asm-generic/qspinlock.h:114 [inline] do_raw_spin_lock+0x95/0xa0 kernel/locking/spinlock_debug.c:115 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline] _raw_spin_lock_irqsave+0x69/0x90 kernel/locking/spinlock.c:162 __bpf_ringbuf_reserve+0x92/0x1d0 kernel/bpf/ringbuf.c:413 ____bpf_ringbuf_reserve kernel/bpf/ringbuf.c:464 [inline] bpf_ringbuf_reserve+0x11/0x20 kernel/bpf/ringbuf.c:456 ___bpf_prog_run+0x816/0x1b20 kernel/bpf/core.c:1846 __bpf_prog_run32+0xb7/0xe0 kernel/bpf/core.c:2072 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+0xc3/0x190 kernel/trace/bpf_trace.c:2323 __traceiter_contention_begin+0x26/0x40 include/trace/events/lock.h:95 trace_contention_begin include/trace/events/lock.h:95 [inline] __mutex_lock_common kernel/locking/mutex.c:605 [inline] __mutex_lock+0x7b4/0x970 kernel/locking/mutex.c:747 blkdev_get_by_dev+0x9b/0x2f0 block/bdev.c:815 blkdev_open+0x4a/0x80 block/fops.c:500 do_dentry_open+0x245/0x380 fs/open.c:882 do_open fs/namei.c:3626 [inline] path_openat+0xab3/0xc40 fs/namei.c:3783 do_filp_open+0xa8/0x150 fs/namei.c:3810 do_sys_openat2+0x7e/0x160 fs/open.c:1318 do_sys_open fs/open.c:1334 [inline] __do_sys_openat fs/open.c:1350 [inline] __se_sys_openat fs/open.c:1345 [inline] __x64_sys_openat+0x78/0xa0 fs/open.c:1345 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x68/0xd2 RIP: 0033:0x7fac8e53b611 Code: 75 57 89 f0 25 00 00 41 00 3d 00 00 41 00 74 49 80 3d 3a 7f 1c 00 00 74 6d 89 da 48 89 ee bf 9c ff ff ff b8 01 01 00 00 0f 05 <48> 3d 00 f0 ff ff 0f 87 93 00 00 00 48 8b 54 24 28 64 48 2b 14 25 RSP: 002b:00007ffd8d1d9a90 EFLAGS: 00000202 ORIG_RAX: 0000000000000101 RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007fac8e53b611 RDX: 0000000000000002 RSI: 00007ffd8d1d9b90 RDI: 00000000ffffff9c RBP: 00007ffd8d1d9b90 R08: 000000000000000a R09: 00007ffd8d1d9857 R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000032 R13: 0000000000010a05 R14: 00007ffd8d1d9b90 R15: 0000000000000002