[ 579.885403][ T64] [ 579.885523][ T64] ============================================ [ 579.885701][ T64] WARNING: possible recursive locking detected [ 579.885873][ T64] 6.13.0-rc5-virtme #1 Not tainted [ 579.886013][ T64] -------------------------------------------- [ 579.886185][ T64] kworker/u16:1/64 is trying to acquire lock: [ 579.886356][ T64] ffffffff8f5f6a70 ((netdev_chain).rwsem){++++}-{4:4}, at: blocking_notifier_call_chain+0x50/0x90 [ 579.886653][ T64] [ 579.886653][ T64] but task is already holding lock: [ 579.886858][ T64] ffffffff8f5f6a70 ((netdev_chain).rwsem){++++}-{4:4}, at: blocking_notifier_call_chain+0x50/0x90 [ 579.887149][ T64] [ 579.887149][ T64] other info that might help us debug this: [ 579.887356][ T64] Possible unsafe locking scenario: [ 579.887356][ T64] [ 579.887558][ T64] CPU0 [ 579.887664][ T64] ---- [ 579.887767][ T64] lock((netdev_chain).rwsem); [ 579.887906][ T64] lock((netdev_chain).rwsem); [ 579.888043][ T64] [ 579.888043][ T64] *** DEADLOCK *** [ 579.888043][ T64] [ 579.888244][ T64] May be due to missing lock nesting notation [ 579.888244][ T64] [ 579.888451][ T64] 5 locks held by kworker/u16:1/64: [ 579.888594][ T64] #0: ffff8880010b5948 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0x7ec/0x16d0 [ 579.888886][ T64] #1: ffffc90000457da0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0xe0b/0x16d0 [ 579.889136][ T64] #2: ffffffff8f5ec4d0 (pernet_ops_rwsem){++++}-{4:4}, at: cleanup_net+0xbc/0xba0 [ 579.889391][ T64] #3: ffffffff8f607e88 (rtnl_mutex){+.+.}-{4:4}, at: default_device_exit_batch+0x81/0x2e0 [ 579.889681][ T64] #4: ffffffff8f5f6a70 ((netdev_chain).rwsem){++++}-{4:4}, at: blocking_notifier_call_chain+0x50/0x90 [ 579.889958][ T64] [ 579.889958][ T64] stack backtrace: [ 579.890133][ T64] CPU: 0 UID: 0 PID: 64 Comm: kworker/u16:1 Not tainted 6.13.0-rc5-virtme #1 [ 579.890383][ T64] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 579.890562][ T64] Workqueue: netns cleanup_net [ 579.890709][ T64] Call Trace: [ 579.890821][ T64] [ 579.890898][ T64] dump_stack_lvl+0x82/0xd0 [ 579.891044][ T64] print_deadlock_bug+0x40a/0x650 [ 579.891182][ T64] validate_chain+0x5bf/0xae0 [ 579.891326][ T64] ? __pfx_validate_chain+0x10/0x10 [ 579.891472][ T64] ? hlock_class+0x4e/0x130 [ 579.891611][ T64] ? mark_lock+0x38/0x3e0 [ 579.891717][ T64] __lock_acquire+0xb9a/0x1680 [ 579.891863][ T64] lock_acquire.part.0+0xeb/0x330 [ 579.892003][ T64] ? blocking_notifier_call_chain+0x50/0x90 [ 579.892175][ T64] ? __lock_acquire+0xb9a/0x1680 [ 579.892313][ T64] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 579.892453][ T64] ? trace_lock_acquire+0x14c/0x1f0 [ 579.892592][ T64] ? lock_acquire+0x32/0xc0 [ 579.892727][ T64] ? blocking_notifier_call_chain+0x50/0x90 [ 579.892900][ T64] down_read+0x9f/0x340 [ 579.893011][ T64] ? blocking_notifier_call_chain+0x50/0x90 [ 579.893180][ T64] ? __pfx_down_read+0x10/0x10 [ 579.893321][ T64] ? __lock_release+0x103/0x460 [ 579.893460][ T64] blocking_notifier_call_chain+0x50/0x90 [ 579.893602][ T64] __netdev_upper_dev_unlink+0xd9/0x220 [ 579.893741][ T64] ? mark_held_locks+0x9e/0xe0 [ 579.893879][ T64] ? __pfx___netdev_upper_dev_unlink+0x10/0x10 [ 579.894050][ T64] ? lockdep_hardirqs_on_prepare+0x275/0x410 [ 579.894220][ T64] ? __try_to_del_timer_sync+0xe7/0x140 [ 579.894362][ T64] ? __pfx___try_to_del_timer_sync+0x10/0x10 [ 579.894535][ T64] ? mark_held_locks+0x9e/0xe0 [ 579.894677][ T64] netdev_upper_dev_unlink+0x71/0xa0 [ 579.894816][ T64] ? __pfx_netdev_upper_dev_unlink+0x10/0x10 [ 579.894986][ T64] ? mutex_is_locked+0x1c/0x60 [ 579.895126][ T64] ? rtnl_is_locked+0x15/0x20 [ 579.895271][ T64] ? netdev_master_upper_dev_get+0x13/0x120 [ 579.895446][ T64] vrf_device_event+0x78/0xe0 [ 579.895585][ T64] notifier_call_chain+0xcd/0x150 [ 579.895724][ T64] blocking_notifier_call_chain+0x66/0x90 [ 579.895866][ T64] unregister_netdevice_many_notify+0xa83/0x1580 [ 579.896040][ T64] ? __pfx_unregister_netdevice_many_notify+0x10/0x10 [ 579.896213][ T64] ? default_device_exit_batch+0x81/0x2e0 [ 579.896353][ T64] ? rtnl_is_locked+0x15/0x20 [ 579.896491][ T64] ? unregister_netdevice_queue+0x70/0x410 [ 579.896661][ T64] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 579.896832][ T64] ? __pfx_unregister_netdevice_queue+0x10/0x10 [ 579.897004][ T64] default_device_exit_batch+0x241/0x2e0 [ 579.897143][ T64] ? __pfx_default_device_exit_batch+0x10/0x10 [ 579.897314][ T64] ? ops_exit_list+0xb4/0x170 [ 579.897455][ T64] cleanup_net+0x4ef/0xba0 [ 579.897593][ T64] ? __pfx_lock_acquire.part.0+0x10/0x10 [ 579.897733][ T64] ? __pfx_cleanup_net+0x10/0x10 [ 579.897870][ T64] ? trace_lock_acquire+0x14c/0x1f0 [ 579.898010][ T64] ? lock_acquire+0x32/0xc0 [ 579.898146][ T64] ? process_one_work+0xe0b/0x16d0 [ 579.898291][ T64] process_one_work+0xe55/0x16d0 [ 579.898431][ T64] ? __pfx___lock_release+0x10/0x10 [ 579.898569][ T64] ? __pfx_process_one_work+0x10/0x10 [ 579.898704][ T64] ? assign_work+0x16c/0x240 [ 579.898845][ T64] worker_thread+0x58c/0xce0 [ 579.898984][ T64] ? lockdep_hardirqs_on_prepare+0x275/0x410 [ 579.899155][ T64] ? __pfx_worker_thread+0x10/0x10 [ 579.899298][ T64] ? __pfx_worker_thread+0x10/0x10 [ 579.899439][ T64] kthread+0x28a/0x350 [ 579.899549][ T64] ? __pfx_kthread+0x10/0x10 [ 579.899688][ T64] ret_from_fork+0x31/0x70 [ 579.899828][ T64] ? __pfx_kthread+0x10/0x10 [ 579.899968][ T64] ret_from_fork_asm+0x1a/0x30 [ 579.900112][ T64]