============================================ WARNING: possible recursive locking detected 5.19.0-rc5-syzkaller-00049-gc1084b6c5620 #0 Not tainted -------------------------------------------- syz-executor.5/3637 is trying to acquire lock: ffffffff8be0a598 (trace_printk_lock){....}-{2:2}, at: ____bpf_trace_printk kernel/trace/bpf_trace.c:388 [inline] ffffffff8be0a598 (trace_printk_lock){....}-{2:2}, at: bpf_trace_printk+0xcf/0x170 kernel/trace/bpf_trace.c:374 but task is already holding lock: ffffffff8be0a598 (trace_printk_lock){....}-{2:2}, at: ____bpf_trace_printk kernel/trace/bpf_trace.c:388 [inline] ffffffff8be0a598 (trace_printk_lock){....}-{2:2}, at: bpf_trace_printk+0xcf/0x170 kernel/trace/bpf_trace.c:374 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(trace_printk_lock); lock(trace_printk_lock); *** DEADLOCK *** May be due to missing lock nesting notation 4 locks held by syz-executor.5/3637: #0: ffff8880b9b39f98 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x2b/0x120 kernel/sched/core.c:544 #1: ffffffff8bd83b60 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run4+0x0/0x360 include/linux/filter.h:628 #2: ffffffff8be0a598 (trace_printk_lock){....}-{2:2}, at: ____bpf_trace_printk kernel/trace/bpf_trace.c:388 [inline] #2: ffffffff8be0a598 (trace_printk_lock){....}-{2:2}, at: bpf_trace_printk+0xcf/0x170 kernel/trace/bpf_trace.c:374 #3: ffffffff8bd83b60 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run2+0x0/0x340 kernel/trace/./bpf_trace.h:11 stack backtrace: CPU: 1 PID: 3637 Comm: syz-executor.5 Not tainted 5.19.0-rc5-syzkaller-00049-gc1084b6c5620 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/29/2022 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_deadlock_bug kernel/locking/lockdep.c:2988 [inline] check_deadlock kernel/locking/lockdep.c:3031 [inline] validate_chain kernel/locking/lockdep.c:3816 [inline] __lock_acquire.cold+0x1f5/0x3b4 kernel/locking/lockdep.c:5053 lock_acquire kernel/locking/lockdep.c:5665 [inline] lock_acquire+0x1ab/0x570 kernel/locking/lockdep.c:5630 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x39/0x50 kernel/locking/spinlock.c:162 ____bpf_trace_printk kernel/trace/bpf_trace.c:388 [inline] bpf_trace_printk+0xcf/0x170 kernel/trace/bpf_trace.c:374 ___bpf_prog_run+0x369d/0x7960 kernel/bpf/core.c:1850 __bpf_prog_run32+0x8a/0xd0 kernel/bpf/core.c:2073 bpf_dispatcher_nop_func include/linux/bpf.h:869 [inline] __bpf_prog_run include/linux/filter.h:628 [inline] bpf_prog_run include/linux/filter.h:635 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2046 [inline] bpf_trace_run2+0x110/0x340 kernel/trace/bpf_trace.c:2083 __bpf_trace_contention_begin+0xb5/0xf0 include/trace/events/lock.h:95 trace_contention_begin.constprop.0+0xda/0x1b0 include/trace/events/lock.h:95 __pv_queued_spin_lock_slowpath+0x103/0xb50 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+0x200/0x2a0 kernel/locking/spinlock_debug.c:115 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline] _raw_spin_lock_irqsave+0x41/0x50 kernel/locking/spinlock.c:162 ____bpf_trace_printk kernel/trace/bpf_trace.c:388 [inline] bpf_trace_printk+0xcf/0x170 kernel/trace/bpf_trace.c:374 ___bpf_prog_run+0x369d/0x7960 kernel/bpf/core.c:1850 __bpf_prog_run32+0x8a/0xd0 kernel/bpf/core.c:2073 bpf_dispatcher_nop_func include/linux/bpf.h:869 [inline] __bpf_prog_run include/linux/filter.h:628 [inline] bpf_prog_run include/linux/filter.h:635 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2046 [inline] bpf_trace_run4+0x124/0x360 kernel/trace/bpf_trace.c:2085 __bpf_trace_sched_switch+0x115/0x160 include/trace/events/sched.h:222 __traceiter_sched_switch+0x68/0xb0 include/trace/events/sched.h:222 trace_sched_switch include/trace/events/sched.h:222 [inline] __schedule+0x145b/0x4b50 kernel/sched/core.c:6455 preempt_schedule_irq+0x4e/0x90 kernel/sched/core.c:6766 irqentry_exit+0x31/0x80 kernel/entry/common.c:428 asm_sysvec_apic_timer_interrupt+0x1b/0x20 arch/x86/include/asm/idtentry.h:649 RIP: 0010:prefetchw arch/x86/include/asm/processor.h:743 [inline] RIP: 0010:slab_alloc mm/slab.c:3298 [inline] RIP: 0010:__kmem_cache_alloc_lru mm/slab.c:3479 [inline] RIP: 0010:kmem_cache_alloc+0x195/0x560 mm/slab.c:3499 Code: 0f 84 a2 01 00 00 4d 85 f6 4c 89 7c 24 08 0f 85 39 02 00 00 9c 58 f6 c4 02 0f 85 b1 02 00 00 4d 85 f6 74 01 fb 48 8b 74 24 08 <0f> 0d 0e 0f 1f 44 00 00 48 83 7b 50 00 0f 84 8e 00 00 00 44 23 25 RSP: 0018:ffffc9000312fdb0 EFLAGS: 00000206 RAX: 0000000000000002 RBX: ffff888140092f00 RCX: 1ffffffff1b75761 RDX: 0000000000000000 RSI: ffff8880353e6d80 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000001 R10: ffffed1002404ba0 R11: 0000000000000001 R12: 0000000000000cc0 R13: 0000000000000cc0 R14: 0000000000000200 R15: ffff8880353e6d80 getname_flags.part.0+0x50/0x4f0 fs/namei.c:139 getname_flags+0x9a/0xe0 include/linux/audit.h:323 user_path_at_empty+0x2b/0x60 fs/namei.c:2894 user_path_at include/linux/namei.h:57 [inline] ksys_umount fs/namespace.c:1822 [inline] __do_sys_umount fs/namespace.c:1830 [inline] __se_sys_umount fs/namespace.c:1828 [inline] __x64_sys_umount+0xf8/0x180 fs/namespace.c:1828 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x46/0xb0 RIP: 0033:0x7fb5be88a577 Code: ff ff ff f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 31 f6 e9 09 00 00 00 66 0f 1f 84 00 00 00 00 00 b8 a6 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007ffd44998f38 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6 RAX: ffffffffffffffda RBX: 000000000000241e RCX: 00007fb5be88a577 RDX: 000000000000000c RSI: 000000000000000a RDI: 00007ffd4499a0c0 RBP: 00007ffd4499a09c R08: 0000000000000000 R09: 00007ffd449ea080 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fb5be8e21c8 R13: 00007ffd4499a0c0 R14: 0000000000000013 R15: 00007ffd4499a100 ---------------- Code disassembly (best guess): 0: 0f 84 a2 01 00 00 je 0x1a8 6: 4d 85 f6 test %r14,%r14 9: 4c 89 7c 24 08 mov %r15,0x8(%rsp) e: 0f 85 39 02 00 00 jne 0x24d 14: 9c pushfq 15: 58 pop %rax 16: f6 c4 02 test $0x2,%ah 19: 0f 85 b1 02 00 00 jne 0x2d0 1f: 4d 85 f6 test %r14,%r14 22: 74 01 je 0x25 24: fb sti 25: 48 8b 74 24 08 mov 0x8(%rsp),%rsi * 2a: 0f 0d 0e prefetchw (%rsi) <-- trapping instruction 2d: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 32: 48 83 7b 50 00 cmpq $0x0,0x50(%rbx) 37: 0f 84 8e 00 00 00 je 0xcb 3d: 44 rex.R 3e: 23 .byte 0x23 3f: 25 .byte 0x25