============================================ WARNING: possible recursive locking detected 6.14.0-syzkaller-ge48e99b6edf4 #0 Not tainted -------------------------------------------- kworker/1:2/1206 is trying to acquire lock: ffff88807cbbe1e0 (&qs->lock){..-.}-{2:2}, at: __queue_map_get+0x154/0x500 kernel/bpf/queue_stack_maps.c:105 but task is already holding lock: ffff88807f7081e0 (&qs->lock){..-.}-{2:2}, at: __queue_map_get+0x154/0x500 kernel/bpf/queue_stack_maps.c:105 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 kworker/1:2/1206: #0: ffff8880b8739b18 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x2a/0x140 kernel/sched/core.c:605 #1: ffffffff8ed3dfe0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #1: ffffffff8ed3dfe0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #1: ffffffff8ed3dfe0 (rcu_read_lock){....}-{1:3}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2362 [inline] #1: ffffffff8ed3dfe0 (rcu_read_lock){....}-{1:3}, at: bpf_trace_run4+0x246/0x5a0 kernel/trace/bpf_trace.c:2406 #2: ffff88807f7081e0 (&qs->lock){..-.}-{2:2}, at: __queue_map_get+0x154/0x500 kernel/bpf/queue_stack_maps.c:105 #3: ffffffff8ed3dfe0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #3: ffffffff8ed3dfe0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #3: ffffffff8ed3dfe0 (rcu_read_lock){....}-{1:3}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2362 [inline] #3: ffffffff8ed3dfe0 (rcu_read_lock){....}-{1:3}, at: bpf_trace_run2+0x1fe/0x550 kernel/trace/bpf_trace.c:2404 stack backtrace: CPU: 1 UID: 0 PID: 1206 Comm: kworker/1:2 Not tainted 6.14.0-syzkaller-ge48e99b6edf4 #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Workqueue: 0x0 (wg-crypt-wg1) Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 print_deadlock_bug+0x2be/0x2d0 kernel/locking/lockdep.c:3042 check_deadlock kernel/locking/lockdep.c:3094 [inline] validate_chain+0x928/0x24e0 kernel/locking/lockdep.c:3896 __lock_acquire+0xad5/0xd80 kernel/locking/lockdep.c:5235 lock_acquire+0x116/0x2f0 kernel/locking/lockdep.c:5866 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0xd8/0x130 kernel/locking/spinlock.c:162 __queue_map_get+0x154/0x500 kernel/bpf/queue_stack_maps.c:105 bpf_prog_00798911c748094f+0x43/0x47 bpf_dispatcher_nop_func include/linux/bpf.h:1316 [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:2363 [inline] bpf_trace_run2+0x2ee/0x550 kernel/trace/bpf_trace.c:2404 __bpf_trace_contention_end+0x172/0x230 include/trace/events/lock.h:122 __do_trace_contention_end include/trace/events/lock.h:122 [inline] trace_contention_end+0x118/0x140 include/trace/events/lock.h:122 __pv_queued_spin_lock_slowpath+0xb82/0xdc0 kernel/locking/qspinlock.c:374 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:572 [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+0x276/0x370 kernel/locking/spinlock_debug.c:116 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline] _raw_spin_lock_irqsave+0xe4/0x130 kernel/locking/spinlock.c:162 __queue_map_get+0x154/0x500 kernel/bpf/queue_stack_maps.c:105 bpf_prog_00798911c748094f+0x43/0x47 bpf_dispatcher_nop_func include/linux/bpf.h:1316 [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:2363 [inline] bpf_trace_run4+0x336/0x5a0 kernel/trace/bpf_trace.c:2406 __bpf_trace_sched_switch+0x296/0x3d0 include/trace/events/sched.h:220 __traceiter_sched_switch+0x98/0xd0 include/trace/events/sched.h:220 __do_trace_sched_switch include/trace/events/sched.h:220 [inline] trace_sched_switch include/trace/events/sched.h:220 [inline] __schedule+0x2910/0x5240 kernel/sched/core.c:6764 __schedule_loop kernel/sched/core.c:6845 [inline] schedule+0x163/0x360 kernel/sched/core.c:6860 worker_thread+0xa37/0xd50 kernel/workqueue.c:3415 kthread+0x7b7/0x940 kernel/kthread.c:464 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:153 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245