batman_adv: batadv0: Removing interface: batadv_slave_1 ============================================ WARNING: possible recursive locking detected 6.15.0-rc2-syzkaller-gc72692105976 #0 Not tainted -------------------------------------------- kworker/u8:9/3802 is trying to acquire lock: ffff0000ee776d38 (&dev_instance_lock_key#3){+.+.}-{4:4}, at: netdev_lock include/linux/netdevice.h:2751 [inline] ffff0000ee776d38 (&dev_instance_lock_key#3){+.+.}-{4:4}, at: netdev_lock_ops include/net/netdev_lock.h:42 [inline] ffff0000ee776d38 (&dev_instance_lock_key#3){+.+.}-{4:4}, at: dev_set_allmulti+0xf0/0x200 net/core/dev_api.c:288 but task is already holding lock: ffff0000ee776d38 (&dev_instance_lock_key#3){+.+.}-{4:4}, at: netdev_lock include/linux/netdevice.h:2751 [inline] ffff0000ee776d38 (&dev_instance_lock_key#3){+.+.}-{4:4}, at: netdev_lock_ops include/net/netdev_lock.h:42 [inline] ffff0000ee776d38 (&dev_instance_lock_key#3){+.+.}-{4:4}, at: unregister_netdevice_many_notify+0x460/0x1e90 net/core/dev.c:11938 and the lock comparison function returns 0: other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&dev_instance_lock_key#3); lock(&dev_instance_lock_key#3); *** DEADLOCK *** May be due to missing lock nesting notation 5 locks held by kworker/u8:9/3802: #0: ffff0000c183a148 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0x658/0x156c kernel/workqueue.c:3212 #1: ffff8000a07f7bc0 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0x6ec/0x156c kernel/workqueue.c:3212 #2: ffff800092439510 (pernet_ops_rwsem){++++}-{4:4}, at: cleanup_net+0x138/0x9c0 net/core/net_namespace.c:608 #3: ffff800092445fe8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_lock+0x20/0x2c net/core/rtnetlink.c:80 #4: ffff0000ee776d38 (&dev_instance_lock_key#3){+.+.}-{4:4}, at: netdev_lock include/linux/netdevice.h:2751 [inline] #4: ffff0000ee776d38 (&dev_instance_lock_key#3){+.+.}-{4:4}, at: netdev_lock_ops include/net/netdev_lock.h:42 [inline] #4: ffff0000ee776d38 (&dev_instance_lock_key#3){+.+.}-{4:4}, at: unregister_netdevice_many_notify+0x460/0x1e90 net/core/dev.c:11938 stack backtrace: CPU: 0 UID: 0 PID: 3802 Comm: kworker/u8:9 Not tainted 6.15.0-rc2-syzkaller-gc72692105976 #0 PREEMPT Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025 Workqueue: netns cleanup_net Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:466 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 print_deadlock_bug+0x2e8/0x2f0 kernel/locking/lockdep.c:3042 check_deadlock kernel/locking/lockdep.c:3094 [inline] validate_chain kernel/locking/lockdep.c:3896 [inline] __lock_acquire+0x28f4/0x3058 kernel/locking/lockdep.c:5235 lock_acquire+0x14c/0x2e0 kernel/locking/lockdep.c:5866 __mutex_lock_common+0x1d0/0x2190 kernel/locking/mutex.c:601 __mutex_lock kernel/locking/mutex.c:746 [inline] mutex_lock_nested+0x2c/0x38 kernel/locking/mutex.c:798 netdev_lock include/linux/netdevice.h:2751 [inline] netdev_lock_ops include/net/netdev_lock.h:42 [inline] dev_set_allmulti+0xf0/0x200 net/core/dev_api.c:288 macsec_dev_stop+0x1e4/0x2ec drivers/net/macsec.c:3675 __dev_close_many+0x3d8/0x704 net/core/dev.c:1700 dev_close_many+0x1e8/0x448 net/core/dev.c:1725 unregister_netdevice_many_notify+0x4c8/0x1e90 net/core/dev.c:11940 unregister_netdevice_many net/core/dev.c:12035 [inline] default_device_exit_batch+0x838/0x8b4 net/core/dev.c:12527 ops_exit_list net/core/net_namespace.c:177 [inline] cleanup_net+0x650/0x9c0 net/core/net_namespace.c:654 process_one_work+0x7e8/0x156c kernel/workqueue.c:3238 process_scheduled_works kernel/workqueue.c:3319 [inline] worker_thread+0x958/0xed8 kernel/workqueue.c:3400 kthread+0x5fc/0x75c kernel/kthread.c:464 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:862