============================================ WARNING: possible recursive locking detected 6.1.130-syzkaller #0 Not tainted -------------------------------------------- syz.0.30/4444 is trying to acquire lock: ffff8880731e4218 (&qs->lock){-.-.}-{2:2}, at: __stack_map_get+0x147/0x4a0 kernel/bpf/queue_stack_maps.c:144 but task is already holding lock: ffff8880579c1218 (&qs->lock){-.-.}-{2:2}, at: __queue_map_get+0x146/0x4b0 kernel/bpf/queue_stack_maps.c:109 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 5 locks held by syz.0.30/4444: #0: ffffffff8e543a10 (pernet_ops_rwsem){++++}-{3:3}, at: copy_net_ns+0x338/0x590 net/core/net_namespace.c:504 #1: ffff8880b8e3a9d8 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x26/0x140 kernel/sched/core.c:537 #2: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline] #2: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline] #2: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2283 [inline] #2: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run4+0x16a/0x470 kernel/trace/bpf_trace.c:2325 #3: ffff8880579c1218 (&qs->lock){-.-.}-{2:2}, at: __queue_map_get+0x146/0x4b0 kernel/bpf/queue_stack_maps.c:109 #4: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline] #4: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline] #4: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2283 [inline] #4: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run2+0x110/0x410 kernel/trace/bpf_trace.c:2323 stack backtrace: CPU: 0 PID: 4444 Comm: syz.0.30 Not tainted 6.1.130-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 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 __stack_map_get+0x147/0x4a0 kernel/bpf/queue_stack_maps.c:144 bpf_prog_00798911c748094f+0x3a/0x3e 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 __queue_map_get+0x146/0x4b0 kernel/bpf/queue_stack_maps.c:109 bpf_prog_94b194d4ebfffdd5+0x3d/0x41 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_run4+0x253/0x470 kernel/trace/bpf_trace.c:2325 __traceiter_sched_switch+0x91/0xc0 include/trace/events/sched.h:222 trace_sched_switch include/trace/events/sched.h:222 [inline] __schedule+0x2128/0x4570 kernel/sched/core.c:6557 preempt_schedule_irq+0xf7/0x1c0 kernel/sched/core.c:6872 irqentry_exit+0x53/0x80 kernel/entry/common.c:439 asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:691 RIP: 0010:should_resched arch/x86/include/asm/preempt.h:103 [inline] RIP: 0010:__local_bh_enable_ip+0x16c/0x1f0 kernel/softirq.c:410 Code: 8b e8 c8 2a 5d 09 65 66 8b 05 e0 5e af 7e 66 85 c0 75 57 bf 01 00 00 00 e8 b1 48 0a 00 e8 dc 19 3d 00 fb 65 8b 05 cc 2e ae 7e <85> c0 75 05 e8 6b 52 ac ff 48 c7 44 24 20 0e 36 e0 45 49 c7 04 1c RSP: 0018:ffffc900049cf6c0 EFLAGS: 00000282 RAX: 0000000080000000 RBX: 1ffff92000939edc RCX: ffffffff816b145a RDX: dffffc0000000000 RSI: ffffffff8b0c1d40 RDI: ffffffff8b5f6f80 RBP: ffffc900049cf768 R08: dffffc0000000000 R09: fffffbfff225724e R10: 0000000000000000 R11: dffffc0000000001 R12: dffffc0000000000 R13: 1ffff92000939ee0 R14: ffffc900049cf700 R15: 0000000000000201 spin_unlock_bh include/linux/spinlock.h:396 [inline] tcp_metrics_flush_all+0x27d/0x330 net/ipv4/tcp_metrics.c:917 ops_exit_list net/core/net_namespace.c:177 [inline] setup_net+0xa0c/0xc70 net/core/net_namespace.c:368 copy_net_ns+0x352/0x590 net/core/net_namespace.c:508 create_new_namespaces+0x425/0x7a0 kernel/nsproxy.c:110 copy_namespaces+0x397/0x3f0 kernel/nsproxy.c:178 copy_process+0x1ade/0x40a0 kernel/fork.c:2269 kernel_clone+0x222/0x920 kernel/fork.c:2681 __do_sys_clone kernel/fork.c:2822 [inline] __se_sys_clone kernel/fork.c:2806 [inline] __x64_sys_clone+0x242/0x2c0 kernel/fork.c:2806 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:0x7f177258d169 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f1773348fe8 EFLAGS: 00000206 ORIG_RAX: 0000000000000038 RAX: ffffffffffffffda RBX: 00007f17727a5fa0 RCX: 00007f177258d169 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000040000000 RBP: 00007f177260e2a0 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000000 R13: 0000000000000000 R14: 00007f17727a5fa0 R15: 00007ffe818a9bb8 ---------------- Code disassembly (best guess): 0: 8b e8 mov %eax,%ebp 2: c8 2a 5d 09 enter $0x5d2a,$0x9 6: 65 66 8b 05 e0 5e af mov %gs:0x7eaf5ee0(%rip),%ax # 0x7eaf5eee d: 7e e: 66 85 c0 test %ax,%ax 11: 75 57 jne 0x6a 13: bf 01 00 00 00 mov $0x1,%edi 18: e8 b1 48 0a 00 call 0xa48ce 1d: e8 dc 19 3d 00 call 0x3d19fe 22: fb sti 23: 65 8b 05 cc 2e ae 7e mov %gs:0x7eae2ecc(%rip),%eax # 0x7eae2ef6 * 2a: 85 c0 test %eax,%eax <-- trapping instruction 2c: 75 05 jne 0x33 2e: e8 6b 52 ac ff call 0xffac529e 33: 48 c7 44 24 20 0e 36 movq $0x45e0360e,0x20(%rsp) 3a: e0 45 3c: 49 rex.WB 3d: c7 .byte 0xc7 3e: 04 1c add $0x1c,%al