8021q: adding VLAN 0 to HW filter on device bond2 bond1: Enslaving vlan1 as an active interface with an up link IPv6: ADDRCONF(NETDEV_CHANGE): bond1: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): vlan0: link becomes ready ============================================ WARNING: possible recursive locking detected 4.19.211-syzkaller #0 Not tainted -------------------------------------------- kworker/1:0/19 is trying to acquire lock: 00000000a85d965e (&vlan_netdev_addr_lock_key/1){+...}, at: netif_addr_lock_nested include/linux/netdevice.h:4007 [inline] 00000000a85d965e (&vlan_netdev_addr_lock_key/1){+...}, at: dev_uc_sync_multiple+0x11a/0x1e0 net/core/dev_addr_lists.c:574 but task is already holding lock: 00000000360c7177 (&vlan_netdev_addr_lock_key/1){+...}, at: spin_lock_bh include/linux/spinlock.h:334 [inline] 00000000360c7177 (&vlan_netdev_addr_lock_key/1){+...}, at: netif_addr_lock_bh include/linux/netdevice.h:4012 [inline] 00000000360c7177 (&vlan_netdev_addr_lock_key/1){+...}, at: __dev_mc_add net/core/dev_addr_lists.c:669 [inline] 00000000360c7177 (&vlan_netdev_addr_lock_key/1){+...}, at: dev_mc_add+0x1f/0xb0 net/core/dev_addr_lists.c:687 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&vlan_netdev_addr_lock_key/1); lock(&vlan_netdev_addr_lock_key/1); *** DEADLOCK *** May be due to missing lock nesting notation 7 locks held by kworker/1:0/19: #0: 0000000029972925 ((wq_completion)"%s"("ipv6_addrconf")){+.+.}, at: process_one_work+0x767/0x1570 kernel/workqueue.c:2124 #1: 0000000059397c77 ((work_completion)(&(&ifa->dad_work)->work)){+.+.}, at: process_one_work+0x79c/0x1570 kernel/workqueue.c:2128 #2: 0000000012b85e13 (rtnl_mutex){+.+.}, at: addrconf_dad_work+0x9c/0x10a0 net/ipv6/addrconf.c:3989 #3: 00000000e221e088 (&(&mc->mca_lock)->rlock){+.-.}, at: spin_lock_bh include/linux/spinlock.h:334 [inline] #3: 00000000e221e088 (&(&mc->mca_lock)->rlock){+.-.}, at: igmp6_group_added+0x154/0x5d0 net/ipv6/mcast.c:672 #4: 00000000360c7177 (&vlan_netdev_addr_lock_key/1){+...}, at: spin_lock_bh include/linux/spinlock.h:334 [inline] #4: 00000000360c7177 (&vlan_netdev_addr_lock_key/1){+...}, at: netif_addr_lock_bh include/linux/netdevice.h:4012 [inline] #4: 00000000360c7177 (&vlan_netdev_addr_lock_key/1){+...}, at: __dev_mc_add net/core/dev_addr_lists.c:669 [inline] #4: 00000000360c7177 (&vlan_netdev_addr_lock_key/1){+...}, at: dev_mc_add+0x1f/0xb0 net/core/dev_addr_lists.c:687 #5: 00000000e3955c7f (&dev_addr_list_lock_key/3){+...}, at: netif_addr_lock_nested include/linux/netdevice.h:4007 [inline] #5: 00000000e3955c7f (&dev_addr_list_lock_key/3){+...}, at: dev_mc_sync+0x11a/0x1e0 net/core/dev_addr_lists.c:765 #6: 00000000e4aed9a9 (rcu_read_lock){....}, at: bond_set_rx_mode+0x0/0x490 drivers/net/bonding/bond_main.c:3481 stack backtrace: CPU: 1 PID: 19 Comm: kworker/1:0 Not tainted 4.19.211-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 Workqueue: ipv6_addrconf addrconf_dad_work Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x1fc/0x2ef lib/dump_stack.c:118 print_deadlock_bug kernel/locking/lockdep.c:1764 [inline] check_deadlock kernel/locking/lockdep.c:1808 [inline] validate_chain kernel/locking/lockdep.c:2404 [inline] __lock_acquire.cold+0x121/0x57e kernel/locking/lockdep.c:3416 lock_acquire+0x170/0x3c0 kernel/locking/lockdep.c:3908 _raw_spin_lock_nested+0x30/0x40 kernel/locking/spinlock.c:354 netif_addr_lock_nested include/linux/netdevice.h:4007 [inline] dev_uc_sync_multiple+0x11a/0x1e0 net/core/dev_addr_lists.c:574 bond_set_rx_mode+0x1ae/0x490 drivers/net/bonding/bond_main.c:3646 __dev_set_rx_mode+0x1d9/0x2f0 net/core/dev.c:7601 dev_mc_sync+0x193/0x1e0 net/core/dev_addr_lists.c:768 vlan_dev_set_rx_mode+0x38/0x80 net/8021q/vlan_dev.c:488 __dev_set_rx_mode+0x1d9/0x2f0 net/core/dev.c:7601 __dev_mc_add net/core/dev_addr_lists.c:673 [inline] dev_mc_add+0xa1/0xb0 net/core/dev_addr_lists.c:687 igmp6_group_added+0x4bc/0x5d0 net/ipv6/mcast.c:676 __ipv6_dev_mc_inc+0x728/0xa80 net/ipv6/mcast.c:935 addrconf_join_solict net/ipv6/addrconf.c:2101 [inline] addrconf_join_solict net/ipv6/addrconf.c:2093 [inline] addrconf_dad_begin net/ipv6/addrconf.c:3895 [inline] addrconf_dad_work+0xb7d/0x10a0 net/ipv6/addrconf.c:4022 process_one_work+0x864/0x1570 kernel/workqueue.c:2153 worker_thread+0x64c/0x1130 kernel/workqueue.c:2296 kthread+0x33f/0x460 kernel/kthread.c:259 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415 netlink: 'syz-executor692': attribute type 1 has an invalid length. bond3 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond3: link is not ready 8021q: adding VLAN 0 to HW filter on device bond3 bond1: Enslaving vlan2 as an active interface with an up link netlink: 'syz-executor692': attribute type 1 has an invalid length. bond4 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond4: link is not ready 8021q: adding VLAN 0 to HW filter on device bond4 bond1: Enslaving vlan3 as an active interface with an up link netlink: 'syz-executor692': attribute type 1 has an invalid length. bond5 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond5: link is not ready 8021q: adding VLAN 0 to HW filter on device bond5 bond1: Enslaving vlan4 as an active interface with an up link netlink: 'syz-executor692': attribute type 1 has an invalid length. bond6 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond6: link is not ready 8021q: adding VLAN 0 to HW filter on device bond6 bond1: Enslaving vlan5 as an active interface with an up link bond7 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond7: link is not ready 8021q: adding VLAN 0 to HW filter on device bond7 bond1: Enslaving vlan6 as an active interface with an up link bond8 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond8: link is not ready 8021q: adding VLAN 0 to HW filter on device bond8 bond1: Enslaving vlan7 as an active interface with an up link bond9 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond9: link is not ready 8021q: adding VLAN 0 to HW filter on device bond9 bond1: Enslaving vlan8 as an active interface with an up link bond10 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond10: link is not ready 8021q: adding VLAN 0 to HW filter on device bond10 bond1: Enslaving vlan9 as an active interface with an up link bond11 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond11: link is not ready 8021q: adding VLAN 0 to HW filter on device bond11 bond1: Enslaving vlan10 as an active interface with an up link bond12 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond12: link is not ready 8021q: adding VLAN 0 to HW filter on device bond12 bond1: Enslaving vlan11 as an active interface with an up link bond13 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond13: link is not ready 8021q: adding VLAN 0 to HW filter on device bond13 bond1: Enslaving vlan12 as an active interface with an up link bond14 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond14: link is not ready 8021q: adding VLAN 0 to HW filter on device bond14 bond1: Enslaving vlan13 as an active interface with an up link bond15 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond15: link is not ready 8021q: adding VLAN 0 to HW filter on device bond15 bond1: Enslaving vlan14 as an active interface with an up link bond16 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond16: link is not ready 8021q: adding VLAN 0 to HW filter on device bond16 bond1: Enslaving vlan15 as an active interface with an up link bond17 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond17: link is not ready 8021q: adding VLAN 0 to HW filter on device bond17 bond1: Enslaving vlan16 as an active interface with an up link bond18 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond18: link is not ready 8021q: adding VLAN 0 to HW filter on device bond18 bond1: Enslaving vlan17 as an active interface with an up link bond19 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond19: link is not ready 8021q: adding VLAN 0 to HW filter on device bond19 bond1: Enslaving vlan18 as an active interface with an up link bond20 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond20: link is not ready 8021q: adding VLAN 0 to HW filter on device bond20 bond1: Enslaving vlan19 as an active interface with an up link bond21 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond21: link is not ready 8021q: adding VLAN 0 to HW filter on device bond21 bond1: Enslaving vlan20 as an active interface with an up link validate_nla: 30 callbacks suppressed netlink: 'syz-executor692': attribute type 1 has an invalid length. bond22 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond22: link is not ready 8021q: adding VLAN 0 to HW filter on device bond22 bond1: Enslaving vlan21 as an active interface with an up link netlink: 'syz-executor692': attribute type 1 has an invalid length. bond23 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond23: link is not ready 8021q: adding VLAN 0 to HW filter on device bond23 bond1: Enslaving vlan22 as an active interface with an up link netlink: 'syz-executor692': attribute type 1 has an invalid length. bond24 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond24: link is not ready 8021q: adding VLAN 0 to HW filter on device bond24 bond1: Enslaving vlan23 as an active interface with an up link netlink: 'syz-executor692': attribute type 1 has an invalid length. bond25 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond25: link is not ready 8021q: adding VLAN 0 to HW filter on device bond25 bond1: Enslaving vlan24 as an active interface with an up link netlink: 'syz-executor692': attribute type 1 has an invalid length. bond26 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond26: link is not ready 8021q: adding VLAN 0 to HW filter on device bond26 bond1: Enslaving vlan25 as an active interface with an up link bond27 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond27: link is not ready 8021q: adding VLAN 0 to HW filter on device bond27 bond1: Enslaving vlan26 as an active interface with an up link bond28 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond28: link is not ready 8021q: adding VLAN 0 to HW filter on device bond28 bond1: Enslaving vlan27 as an active interface with an up link bond29 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond29: link is not ready 8021q: adding VLAN 0 to HW filter on device bond29 bond1: Enslaving vlan28 as an active interface with an up link bond30 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond30: link is not ready 8021q: adding VLAN 0 to HW filter on device bond30 bond1: Enslaving vlan29 as an active interface with an up link bond31 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond31: link is not ready 8021q: adding VLAN 0 to HW filter on device bond31 bond1: Enslaving vlan30 as an active interface with an up link bond32 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond32: link is not ready 8021q: adding VLAN 0 to HW filter on device bond32 bond1: Enslaving vlan31 as an active interface with an up link bond33 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond33: link is not ready 8021q: adding VLAN 0 to HW filter on device bond33 bond1: Enslaving vlan32 as an active interface with an up link bond34 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond34: link is not ready 8021q: adding VLAN 0 to HW filter on device bond34 bond1: Enslaving vlan33 as an active interface with an up link bond35 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond35: link is not ready 8021q: adding VLAN 0 to HW filter on device bond35 bond1: Enslaving vlan34 as an active interface with an up link bond36 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond36: link is not ready 8021q: adding VLAN 0 to HW filter on device bond36 bond1: Enslaving vlan35 as an active interface with an up link bond37 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond37: link is not ready 8021q: adding VLAN 0 to HW filter on device bond37 bond1: Enslaving vlan36 as an active interface with an up link bond38 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond38: link is not ready 8021q: adding VLAN 0 to HW filter on device bond38 bond1: Enslaving vlan37 as an active interface with an up link bond39 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond39: link is not ready 8021q: adding VLAN 0 to HW filter on device bond39 bond1: Enslaving vlan38 as an active interface with an up link bond40 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond40: link is not ready 8021q: adding VLAN 0 to HW filter on device bond40 bond1: Enslaving vlan39 as an active interface with an up link bond41 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond41: link is not ready 8021q: adding VLAN 0 to HW filter on device bond41 bond1: Enslaving vlan40 as an active interface with an up link bond42 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond42: link is not ready 8021q: adding VLAN 0 to HW filter on device bond42 bond1: Enslaving vlan41 as an active interface with an up link bond43 (uninitialized): Released all slaves IPv6: ADDRCONF(NETDEV_UP): bond43: link is not ready 8021q: adding VLAN 0 to HW filter on device bond43 bond1: Enslaving vlan42 as an active interface with an up link validate_nla: 34 callbacks suppressed netlink: 'syz-executor692': attribute type 1 has an invalid length. bond44 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length. IPv6: ADDRCONF(NETDEV_UP): bond44: link is not ready 8021q: adding VLAN 0 to HW filter on device bond44 bond1: Enslaving vlan43 as an active interface with an up link netlink: 'syz-executor692': attribute type 1 has an invalid length. bond45 (uninitialized): Released all slaves netlink: 'syz-executor692': attribute type 1 has an invalid length.