============================================ WARNING: possible recursive locking detected 6.2.0-rc8-syzkaller-00083-g3ac88fa4605e #0 Not tainted -------------------------------------------- kworker/u4:6/2868 is trying to acquire lock: ffffffff8c8184f8 (trace_printk_lock){-.-.}-{2:2}, at: ____bpf_trace_printk kernel/trace/bpf_trace.c:391 [inline] ffffffff8c8184f8 (trace_printk_lock){-.-.}-{2:2}, at: bpf_trace_printk+0xd3/0x170 kernel/trace/bpf_trace.c:377 but task is already holding lock: ffffffff8c8184f8 (trace_printk_lock){-.-.}-{2:2}, at: ____bpf_trace_printk kernel/trace/bpf_trace.c:391 [inline] ffffffff8c8184f8 (trace_printk_lock){-.-.}-{2:2}, at: bpf_trace_printk+0xd3/0x170 kernel/trace/bpf_trace.c:377 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 8 locks held by kworker/u4:6/2868: #0: ffff8880127ee138 ((wq_completion)netns){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: ffff8880127ee138 ((wq_completion)netns){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline] #0: ffff8880127ee138 ((wq_completion)netns){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1280 [inline] #0: ffff8880127ee138 ((wq_completion)netns){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:636 [inline] #0: ffff8880127ee138 ((wq_completion)netns){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:663 [inline] #0: ffff8880127ee138 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0x86d/0x1710 kernel/workqueue.c:2260 #1: ffffc9000d0f7da8 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0x8a1/0x1710 kernel/workqueue.c:2264 #2: ffffffff8e0de2d0 (pernet_ops_rwsem){++++}-{3:3}, at: cleanup_net+0x9f/0xb10 net/core/net_namespace.c:575 #3: ffffffff8e0f1ce8 (rtnl_mutex){+.+.}-{3:3}, at: ip6gre_exit_batch_net+0x8c/0x760 net/ipv6/ip6_gre.c:1636 #4: ffffffff8d4211e8 (device_links_lock){+.+.}-{3:3}, at: device_links_write_lock drivers/base/core.c:190 [inline] #4: ffffffff8d4211e8 (device_links_lock){+.+.}-{3:3}, at: device_links_purge drivers/base/core.c:1587 [inline] #4: ffffffff8d4211e8 (device_links_lock){+.+.}-{3:3}, at: device_del+0x571/0xc80 drivers/base/core.c:3670 #5: ffffffff8c78f2e0 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2262 [inline] #5: ffffffff8c78f2e0 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run2+0xbd/0x3d0 kernel/trace/bpf_trace.c:2306 #6: ffffffff8c8184f8 (trace_printk_lock){-.-.}-{2:2}, at: ____bpf_trace_printk kernel/trace/bpf_trace.c:391 [inline] #6: ffffffff8c8184f8 (trace_printk_lock){-.-.}-{2:2}, at: bpf_trace_printk+0xd3/0x170 kernel/trace/bpf_trace.c:377 #7: ffffffff8c78f2e0 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2262 [inline] #7: ffffffff8c78f2e0 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run2+0xbd/0x3d0 kernel/trace/bpf_trace.c:2306 stack backtrace: CPU: 1 PID: 2868 Comm: kworker/u4:6 Not tainted 6.2.0-rc8-syzkaller-00083-g3ac88fa4605e #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/21/2023 Workqueue: netns cleanup_net Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xd1/0x138 lib/dump_stack.c:106 print_deadlock_bug kernel/locking/lockdep.c:2990 [inline] check_deadlock kernel/locking/lockdep.c:3033 [inline] validate_chain kernel/locking/lockdep.c:3818 [inline] __lock_acquire.cold+0x116/0x3a7 kernel/locking/lockdep.c:5055 lock_acquire kernel/locking/lockdep.c:5668 [inline] lock_acquire+0x1e3/0x630 kernel/locking/lockdep.c:5633 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3d/0x60 kernel/locking/spinlock.c:162 ____bpf_trace_printk kernel/trace/bpf_trace.c:391 [inline] bpf_trace_printk+0xd3/0x170 kernel/trace/bpf_trace.c:377 ___bpf_prog_run+0x37d5/0x7b50 kernel/bpf/core.c:1820 __bpf_prog_run32+0x9d/0xe0 kernel/bpf/core.c:2043 bpf_dispatcher_nop_func include/linux/bpf.h:1082 [inline] __bpf_prog_run include/linux/filter.h:600 [inline] bpf_prog_run include/linux/filter.h:607 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2267 [inline] bpf_trace_run2+0x151/0x3d0 kernel/trace/bpf_trace.c:2306 __bpf_trace_contention_begin+0xb9/0xf0 include/trace/events/lock.h:95 __traceiter_contention_begin+0x5a/0xa0 include/trace/events/lock.h:95 trace_contention_begin.constprop.0+0x143/0x240 include/trace/events/lock.h:95 __pv_queued_spin_lock_slowpath+0x107/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+0x204/0x2b0 kernel/locking/spinlock_debug.c:115 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:111 [inline] _raw_spin_lock_irqsave+0x45/0x60 kernel/locking/spinlock.c:162 ____bpf_trace_printk kernel/trace/bpf_trace.c:391 [inline] bpf_trace_printk+0xd3/0x170 kernel/trace/bpf_trace.c:377 ___bpf_prog_run+0x37d5/0x7b50 kernel/bpf/core.c:1820 __bpf_prog_run32+0x9d/0xe0 kernel/bpf/core.c:2043 bpf_dispatcher_nop_func include/linux/bpf.h:1082 [inline] __bpf_prog_run include/linux/filter.h:600 [inline] bpf_prog_run include/linux/filter.h:607 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2267 [inline] bpf_trace_run2+0x151/0x3d0 kernel/trace/bpf_trace.c:2306 __bpf_trace_contention_begin+0xb9/0xf0 include/trace/events/lock.h:95 __traceiter_contention_begin+0x5a/0xa0 include/trace/events/lock.h:95 trace_contention_begin+0x129/0x1e0 include/trace/events/lock.h:95 __mutex_lock_common kernel/locking/mutex.c:605 [inline] __mutex_lock+0x13c/0x1360 kernel/locking/mutex.c:747 device_links_write_lock drivers/base/core.c:190 [inline] device_links_purge drivers/base/core.c:1587 [inline] device_del+0x571/0xc80 drivers/base/core.c:3670 unregister_netdevice_many_notify+0xdfe/0x19e0 net/core/dev.c:10861 ip6gre_exit_batch_net+0x4ab/0x760 net/ipv6/ip6_gre.c:1639 ops_exit_list+0x125/0x170 net/core/net_namespace.c:174 cleanup_net+0x4ee/0xb10 net/core/net_namespace.c:613 process_one_work+0x9bf/0x1710 kernel/workqueue.c:2289 worker_thread+0x669/0x1090 kernel/workqueue.c:2436 kthread+0x2e8/0x3a0 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308