============================================ WARNING: possible recursive locking detected 6.13.0-rc7-syzkaller-gfda5e3f28400 #0 Not tainted -------------------------------------------- udevd/5354 is trying to acquire lock: ffff8880325e01e0 (&qs->lock ){-.-.}-{2:2}, at: queue_stack_map_push_elem+0x353/0x420 kernel/bpf/queue_stack_maps.c:210 but task is already holding lock: ffff8880325e11e0 (&qs->lock){-.-.}-{2:2}, at: queue_stack_map_push_elem+0x353/0x420 kernel/bpf/queue_stack_maps.c:210 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&qs->lock); lock(&qs->lock); *** DEADLOCK *** May be due to missing lock nesting notation 4 locks held by udevd/5354: #0: ffff88804bd10478 (&f->f_pos_lock){+.+.}-{4:4}, at: fdget_pos+0x267/0x390 fs/file.c:1192 #1: ffffffff8e1bb900 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #1: ffffffff8e1bb900 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #1: ffffffff8e1bb900 (rcu_read_lock){....}-{1:3}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2361 [inline] #1: ffffffff8e1bb900 (rcu_read_lock){....}-{1:3}, at: bpf_trace_run2+0x1c2/0x590 kernel/trace/bpf_trace.c:2403 #2: ffff8880325e11e0 (&qs->lock){-.-.}-{2:2}, at: queue_stack_map_push_elem+0x353/0x420 kernel/bpf/queue_stack_maps.c:210 #3: ffffffff8e1bb900 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #3: ffffffff8e1bb900 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #3: ffffffff8e1bb900 (rcu_read_lock){....}-{1:3}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2361 [inline] #3: ffffffff8e1bb900 (rcu_read_lock){....}-{1:3}, at: bpf_trace_run2+0x1c2/0x590 kernel/trace/bpf_trace.c:2403 stack backtrace: CPU: 2 UID: 0 PID: 5354 Comm: udevd Not tainted 6.13.0-rc7-syzkaller-gfda5e3f28400 #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120 print_deadlock_bug+0x2e3/0x410 kernel/locking/lockdep.c:3037 check_deadlock kernel/locking/lockdep.c:3089 [inline] validate_chain kernel/locking/lockdep.c:3891 [inline] __lock_acquire+0x2117/0x3c40 kernel/locking/lockdep.c:5226 lock_acquire.part.0+0x11b/0x380 kernel/locking/lockdep.c:5849 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 queue_stack_map_push_elem+0x353/0x420 kernel/bpf/queue_stack_maps.c:210 bpf_prog_80daba7f9ca62790+0x43/0x47 bpf_dispatcher_nop_func include/linux/bpf.h:1290 [inline] __bpf_prog_run include/linux/filter.h:701 [inline] bpf_prog_run include/linux/filter.h:708 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2362 [inline] bpf_trace_run2+0x231/0x590 kernel/trace/bpf_trace.c:2403 __bpf_trace_contention_begin+0xca/0x110 include/trace/events/lock.h:95 __traceiter_contention_begin+0x5a/0xa0 include/trace/events/lock.h:95 __preempt_count_dec_and_test arch/x86/include/asm/preempt.h:94 [inline] class_preempt_notrace_destructor include/linux/preempt.h:481 [inline] trace_contention_begin.constprop.0+0xf3/0x170 include/trace/events/lock.h:95 __pv_queued_spin_lock_slowpath+0x10b/0xc90 kernel/locking/qspinlock.c:402 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:584 [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+0x210/0x2c0 kernel/locking/spinlock_debug.c:116 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline] _raw_spin_lock_irqsave+0x42/0x60 kernel/locking/spinlock.c:162 queue_stack_map_push_elem+0x353/0x420 kernel/bpf/queue_stack_maps.c:210 bpf_prog_80daba7f9ca62790+0x43/0x47 bpf_dispatcher_nop_func include/linux/bpf.h:1290 [inline] __bpf_prog_run include/linux/filter.h:701 [inline] bpf_prog_run include/linux/filter.h:708 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2362 [inline] bpf_trace_run2+0x231/0x590 kernel/trace/bpf_trace.c:2403 __bpf_trace_contention_begin+0xca/0x110 include/trace/events/lock.h:95 __traceiter_contention_begin+0x5a/0xa0 include/trace/events/lock.h:95 trace_contention_begin+0xd2/0x140 include/trace/events/lock.h:95 __mutex_lock_common kernel/locking/mutex.c:587 [inline] __mutex_lock+0x1a8/0xa60 kernel/locking/mutex.c:735 fdget_pos+0x267/0x390 fs/file.c:1192 class_fd_pos_constructor include/linux/file.h:85 [inline] __do_sys_getdents64 fs/readdir.c:392 [inline] __se_sys_getdents64 fs/readdir.c:389 [inline] __x64_sys_getdents64+0xe9/0x2c0 fs/readdir.c:389 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcd/0x250 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f3d15378910 Code: 87 43 04 ff c8 7e 08 48 89 ef e8 4d 0e fc ff 4c 89 e0 5b 5d 41 5c c3 b8 ff ff ff 7f 48 39 c2 48 0f 47 d0 b8 d9 00 00 00 0f 05 <48> 3d 00 f0 ff ff 76 10 48 8b 15 e9 74 0f 00 f7 d8 64 89 02 48 83 RSP: 002b:00007ffe04231ef8 EFLAGS: 00000293 ORIG_RAX: 00000000000000d9 RAX: ffffffffffffffda RBX: 000055677da73030 RCX: 00007f3d15378910 RDX: 0000000000008000 RSI: 000055677da73060 RDI: 000000000000000d RBP: 000055677da73034 R08: 000055677da73030 R09: 0000000001000000 R10: 0000000000000812 R11: 0000000000000293 R12: 000055677da466f0 R13: fffffffffffffe60 R14: 0000000000000002 R15: 000055677da73060