============================================ WARNING: possible recursive locking detected 6.12.0-rc6-syzkaller-00110-gff7afaeca1a1 #0 Not tainted -------------------------------------------- ksoftirqd/1/24 is trying to acquire lock: ffff8881417749e0 (&qs->lock){..-.}-{2:2}, at: __stack_map_get+0x2a8/0x350 kernel/bpf/queue_stack_maps.c:140 but task is already holding lock: ffff8881417749e0 (&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 7 locks held by ksoftirqd/1/24: #0: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #0: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #0: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: ieee80211_rx_napi+0xa6/0x400 net/mac80211/rx.c:5484 #1: ffff8880492496f0 (&local->rx_path_lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline] #1: ffff8880492496f0 (&local->rx_path_lock){+.-.}-{2:2}, at: ieee80211_rx_handlers+0xdd/0x9ab0 net/mac80211/rx.c:4174 #2: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #2: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #2: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: __queue_work+0xf2/0x1080 kernel/workqueue.c:2259 #3: ffff88801b098018 (&pool->lock){-.-.}-{2:2}, at: __queue_work+0x26b/0x1080 kernel/workqueue.c:2299 #4: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #4: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #4: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2315 [inline] #4: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run1+0x1ba/0x580 kernel/trace/bpf_trace.c:2356 #5: ffff8881417749e0 (&qs->lock){..-.}-{2:2}, at: queue_stack_map_push_elem+0x353/0x420 kernel/bpf/queue_stack_maps.c:210 #6: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #6: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #6: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2315 [inline] #6: ffffffff8e1b8340 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run2+0x1c2/0x590 kernel/trace/bpf_trace.c:2357 stack backtrace: CPU: 1 UID: 0 PID: 24 Comm: ksoftirqd/1 Not tainted 6.12.0-rc6-syzkaller-00110-gff7afaeca1a1 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 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+0x2185/0x3ce0 kernel/locking/lockdep.c:5202 lock_acquire.part.0+0x11b/0x380 kernel/locking/lockdep.c:5825 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:162 __stack_map_get+0x2a8/0x350 kernel/bpf/queue_stack_maps.c:140 bpf_prog_94b194d4ebfffdd5+0x46/0x4a bpf_dispatcher_nop_func include/linux/bpf.h:1265 [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:2316 [inline] bpf_trace_run2+0x231/0x590 kernel/trace/bpf_trace.c:2357 __bpf_trace_contention_end+0xca/0x110 include/trace/events/lock.h:122 trace_contention_end.constprop.0+0xea/0x170 include/trace/events/lock.h:122 __pv_queued_spin_lock_slowpath+0x27e/0xc90 kernel/locking/qspinlock.c:557 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:1265 [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:2316 [inline] bpf_trace_run1+0x229/0x580 kernel/trace/bpf_trace.c:2356 __bpf_trace_workqueue_activate_work+0x98/0xd0 include/trace/events/workqueue.h:59 trace_workqueue_activate_work+0x125/0x1e0 include/trace/events/workqueue.h:59 __queue_work+0x96d/0x1080 kernel/workqueue.c:2338 queue_work_on+0x11a/0x140 kernel/workqueue.c:2390 __ieee80211_queue_skb_to_iface net/mac80211/rx.c:233 [inline] ieee80211_queue_skb_to_iface net/mac80211/rx.c:244 [inline] ieee80211_rx_h_mgmt net/mac80211/rx.c:4050 [inline] ieee80211_rx_handlers+0x6a17/0x9ab0 net/mac80211/rx.c:4208 ieee80211_invoke_rx_handlers net/mac80211/rx.c:4238 [inline] ieee80211_prepare_and_rx_handle+0x2b6a/0x6ec0 net/mac80211/rx.c:5086 ieee80211_rx_for_interface+0x10a/0x1f0 net/mac80211/rx.c:5171 __ieee80211_rx_handle_packet net/mac80211/rx.c:5327 [inline] ieee80211_rx_list+0x10e4/0x2e90 net/mac80211/rx.c:5462 ieee80211_rx_napi+0xdd/0x400 net/mac80211/rx.c:5485 ieee80211_rx include/net/mac80211.h:5138 [inline] ieee80211_handle_queued_frames+0xd5/0x130 net/mac80211/main.c:441 tasklet_action_common+0x24c/0x3e0 kernel/softirq.c:784 handle_softirqs+0x213/0x8f0 kernel/softirq.c:554 run_ksoftirqd kernel/softirq.c:927 [inline] run_ksoftirqd+0x3a/0x60 kernel/softirq.c:919 smpboot_thread_fn+0x661/0xa30 kernel/smpboot.c:164 kthread+0x2c1/0x3a0 kernel/kthread.c:389 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244