All of lore.kernel.org
 help / color / mirror / Atom feed
From: syzbot <syzbot+3f960c64a104eaa2c813@syzkaller.appspotmail.com>
To: davem@davemloft.net, dhowells@redhat.com, edumazet@google.com,
	gnault@redhat.com, kuba@kernel.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, nicolas.dichtel@6wind.com,
	syzkaller-bugs@googlegroups.com
Subject: possible deadlock in peernet2id_alloc
Date: Sat, 21 Mar 2020 02:40:12 -0700	[thread overview]
Message-ID: <0000000000003f417405a15a30cd@google.com> (raw)

Hello,

syzbot found the following crash on:

HEAD commit:    86e85bf6 sfc: fix XDP-redirect in this driver
git tree:       net-next
console output: https://syzkaller.appspot.com/x/log.txt?x=111eda1de00000
kernel config:  https://syzkaller.appspot.com/x/.config?x=b5acf5ac38a50651
dashboard link: https://syzkaller.appspot.com/bug?extid=3f960c64a104eaa2c813
compiler:       gcc (GCC) 9.0.0 20181231 (experimental)

Unfortunately, I don't have any reproducer for this crash yet.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+3f960c64a104eaa2c813@syzkaller.appspotmail.com

bridge1: port 1(macsec0) entered blocking state
bridge1: port 1(macsec0) entered disabled state
device macsec0 entered promiscuous mode
=====================================================
WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected
5.6.0-rc5-syzkaller #0 Not tainted
-----------------------------------------------------
syz-executor.1/11771 [HC0[0]:SC0[4]:HE1:SE0] is trying to acquire:
ffff8880714700e8 (&(&net->nsid_lock)->rlock){+.+.}, at: spin_lock include/linux/spinlock.h:338 [inline]
ffff8880714700e8 (&(&net->nsid_lock)->rlock){+.+.}, at: peernet2id_alloc+0xcd/0x3f0 net/core/net_namespace.c:240

and this task is already holding:
ffff888060822280 (&dev->addr_list_lock_key#188){+...}, at: spin_lock_bh include/linux/spinlock.h:343 [inline]
ffff888060822280 (&dev->addr_list_lock_key#188){+...}, at: netif_addr_lock_bh include/linux/netdevice.h:4163 [inline]
ffff888060822280 (&dev->addr_list_lock_key#188){+...}, at: dev_uc_add+0x1f/0xb0 net/core/dev_addr_lists.c:588
which would create a new lock dependency:
 (&dev->addr_list_lock_key#188){+...} -> (&(&net->nsid_lock)->rlock){+.+.}

but this new dependency connects a SOFTIRQ-irq-safe lock:
 (&(&mc->mca_lock)->rlock){+.-.}

... which became SOFTIRQ-irq-safe at:
  lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
  __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
  _raw_spin_lock_bh+0x2f/0x40 kernel/locking/spinlock.c:175
  spin_lock_bh include/linux/spinlock.h:343 [inline]
  mld_send_cr net/ipv6/mcast.c:1953 [inline]
  mld_ifc_timer_expire+0x2b5/0x920 net/ipv6/mcast.c:2477
  call_timer_fn+0x195/0x760 kernel/time/timer.c:1404
  expire_timers kernel/time/timer.c:1449 [inline]
  __run_timers kernel/time/timer.c:1773 [inline]
  __run_timers kernel/time/timer.c:1740 [inline]
  run_timer_softirq+0x623/0x1600 kernel/time/timer.c:1786
  __do_softirq+0x26c/0x99d kernel/softirq.c:292
  invoke_softirq kernel/softirq.c:373 [inline]
  irq_exit+0x192/0x1d0 kernel/softirq.c:413
  exiting_irq arch/x86/include/asm/apic.h:546 [inline]
  smp_apic_timer_interrupt+0x19e/0x600 arch/x86/kernel/apic/apic.c:1146
  apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:829
  arch_local_irq_restore arch/x86/include/asm/paravirt.h:759 [inline]
  kmem_cache_free+0xa4/0x320 mm/slab.c:3695
  putname+0xe1/0x120 fs/namei.c:259
  filename_lookup+0x282/0x3e0 fs/namei.c:2475
  user_path_at include/linux/namei.h:58 [inline]
  vfs_statx+0x119/0x1e0 fs/stat.c:197
  vfs_stat include/linux/fs.h:3271 [inline]
  __do_sys_newstat+0x96/0x120 fs/stat.c:351
  do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
  entry_SYSCALL_64_after_hwframe+0x49/0xbe

to a SOFTIRQ-irq-unsafe lock:
 (&(&net->nsid_lock)->rlock){+.+.}

... which became SOFTIRQ-irq-unsafe at:
...
  lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
  __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
  _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151
  spin_lock include/linux/spinlock.h:338 [inline]
  peernet2id_alloc+0xcd/0x3f0 net/core/net_namespace.c:240
  dev_change_net_namespace+0x2a6/0xd30 net/core/dev.c:10066
  do_setlink+0x18b/0x35e0 net/core/rtnetlink.c:2501
  __rtnl_newlink+0xad5/0x1590 net/core/rtnetlink.c:3252
  rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
  rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
  netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
  netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
  netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
  netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
  sock_sendmsg_nosec net/socket.c:652 [inline]
  sock_sendmsg+0xcf/0x120 net/socket.c:672
  ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2343
  ___sys_sendmsg+0x100/0x170 net/socket.c:2397
  __sys_sendmsg+0xec/0x1b0 net/socket.c:2430
  do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
  entry_SYSCALL_64_after_hwframe+0x49/0xbe

other info that might help us debug this:

Chain exists of:
  &(&mc->mca_lock)->rlock --> &dev->addr_list_lock_key#188 --> &(&net->nsid_lock)->rlock

 Possible interrupt unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&(&net->nsid_lock)->rlock);
                               local_irq_disable();
                               lock(&(&mc->mca_lock)->rlock);
                               lock(&dev->addr_list_lock_key#188);
  <Interrupt>
    lock(&(&mc->mca_lock)->rlock);

 *** DEADLOCK ***

3 locks held by syz-executor.1/11771:
 #0: ffffffff8a34fbc0 (rtnl_mutex){+.+.}, at: rtnl_lock net/core/rtnetlink.c:72 [inline]
 #0: ffffffff8a34fbc0 (rtnl_mutex){+.+.}, at: rtnetlink_rcv_msg+0x3f9/0xad0 net/core/rtnetlink.c:5437
 #1: ffff8880607f4bd0 (&(&br->hash_lock)->rlock){+.-.}, at: spin_lock_bh include/linux/spinlock.h:343 [inline]
 #1: ffff8880607f4bd0 (&(&br->hash_lock)->rlock){+.-.}, at: br_fdb_insert+0x24/0x50 net/bridge/br_fdb.c:553
 #2: ffff888060822280 (&dev->addr_list_lock_key#188){+...}, at: spin_lock_bh include/linux/spinlock.h:343 [inline]
 #2: ffff888060822280 (&dev->addr_list_lock_key#188){+...}, at: netif_addr_lock_bh include/linux/netdevice.h:4163 [inline]
 #2: ffff888060822280 (&dev->addr_list_lock_key#188){+...}, at: dev_uc_add+0x1f/0xb0 net/core/dev_addr_lists.c:588

the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
 -> (&(&mc->mca_lock)->rlock){+.-.} {
    HARDIRQ-ON-W at:
                      lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
                      __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
                      _raw_spin_lock_bh+0x2f/0x40 kernel/locking/spinlock.c:175
                      spin_lock_bh include/linux/spinlock.h:343 [inline]
                      mld_del_delrec+0x344/0x570 net/ipv6/mcast.c:786
                      __ipv6_dev_mc_inc+0x80c/0xc90 net/ipv6/mcast.c:930
                      ipv6_add_dev net/ipv6/addrconf.c:453 [inline]
                      ipv6_add_dev+0xa2e/0x10b0 net/ipv6/addrconf.c:363
                      addrconf_init+0xd3/0x39a net/ipv6/addrconf.c:7067
                      inet6_init+0x368/0x6dc net/ipv6/af_inet6.c:1071
                      do_one_initcall+0x10a/0x7d0 init/main.c:1152
                      do_initcall_level init/main.c:1225 [inline]
                      do_initcalls init/main.c:1241 [inline]
                      do_basic_setup init/main.c:1261 [inline]
                      kernel_init_freeable+0x501/0x5ae init/main.c:1445
                      kernel_init+0xd/0x1bb init/main.c:1352
                      ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
    IN-SOFTIRQ-W at:
                      lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
                      __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
                      _raw_spin_lock_bh+0x2f/0x40 kernel/locking/spinlock.c:175
                      spin_lock_bh include/linux/spinlock.h:343 [inline]
                      mld_send_cr net/ipv6/mcast.c:1953 [inline]
                      mld_ifc_timer_expire+0x2b5/0x920 net/ipv6/mcast.c:2477
                      call_timer_fn+0x195/0x760 kernel/time/timer.c:1404
                      expire_timers kernel/time/timer.c:1449 [inline]
                      __run_timers kernel/time/timer.c:1773 [inline]
                      __run_timers kernel/time/timer.c:1740 [inline]
                      run_timer_softirq+0x623/0x1600 kernel/time/timer.c:1786
                      __do_softirq+0x26c/0x99d kernel/softirq.c:292
                      invoke_softirq kernel/softirq.c:373 [inline]
                      irq_exit+0x192/0x1d0 kernel/softirq.c:413
                      exiting_irq arch/x86/include/asm/apic.h:546 [inline]
                      smp_apic_timer_interrupt+0x19e/0x600 arch/x86/kernel/apic/apic.c:1146
                      apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:829
                      arch_local_irq_restore arch/x86/include/asm/paravirt.h:759 [inline]
                      kmem_cache_free+0xa4/0x320 mm/slab.c:3695
                      putname+0xe1/0x120 fs/namei.c:259
                      filename_lookup+0x282/0x3e0 fs/namei.c:2475
                      user_path_at include/linux/namei.h:58 [inline]
                      vfs_statx+0x119/0x1e0 fs/stat.c:197
                      vfs_stat include/linux/fs.h:3271 [inline]
                      __do_sys_newstat+0x96/0x120 fs/stat.c:351
                      do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
                      entry_SYSCALL_64_after_hwframe+0x49/0xbe
    INITIAL USE at:
                     lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
                     __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
                     _raw_spin_lock_bh+0x2f/0x40 kernel/locking/spinlock.c:175
                     spin_lock_bh include/linux/spinlock.h:343 [inline]
                     mld_del_delrec+0x344/0x570 net/ipv6/mcast.c:786
                     __ipv6_dev_mc_inc+0x80c/0xc90 net/ipv6/mcast.c:930
                     ipv6_add_dev net/ipv6/addrconf.c:453 [inline]
                     ipv6_add_dev+0xa2e/0x10b0 net/ipv6/addrconf.c:363
                     addrconf_init+0xd3/0x39a net/ipv6/addrconf.c:7067
                     inet6_init+0x368/0x6dc net/ipv6/af_inet6.c:1071
                     do_one_initcall+0x10a/0x7d0 init/main.c:1152
                     do_initcall_level init/main.c:1225 [inline]
                     do_initcalls init/main.c:1241 [inline]
                     do_basic_setup init/main.c:1261 [inline]
                     kernel_init_freeable+0x501/0x5ae init/main.c:1445
                     kernel_init+0xd/0x1bb init/main.c:1352
                     ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
  }
  ... key      at: [<ffffffff8cf734a0>] __key.78637+0x0/0x40
  ... acquired at:
   __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
   _raw_spin_lock_bh+0x2f/0x40 kernel/locking/spinlock.c:175
   spin_lock_bh include/linux/spinlock.h:343 [inline]
   netif_addr_lock_bh include/linux/netdevice.h:4163 [inline]
   __dev_mc_add+0x28/0xd0 net/core/dev_addr_lists.c:765
   igmp6_group_added+0x375/0x420 net/ipv6/mcast.c:672
   __ipv6_dev_mc_inc+0x814/0xc90 net/ipv6/mcast.c:931
   ipv6_add_dev net/ipv6/addrconf.c:456 [inline]
   ipv6_add_dev+0xa3d/0x10b0 net/ipv6/addrconf.c:363
   addrconf_notify+0x960/0x2310 net/ipv6/addrconf.c:3497
   notifier_call_chain+0xc0/0x230 kernel/notifier.c:83
   call_netdevice_notifiers_info net/core/dev.c:1948 [inline]
   call_netdevice_notifiers_info+0xb5/0x130 net/core/dev.c:1933
   call_netdevice_notifiers_extack net/core/dev.c:1960 [inline]
   call_netdevice_notifiers net/core/dev.c:1974 [inline]
   register_netdevice+0x69f/0xfc0 net/core/dev.c:9401
   macsec_newlink+0x2d4/0x1070 drivers/net/macsec.c:3875
   __rtnl_newlink+0xf18/0x1590 net/core/rtnetlink.c:3319
   rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
   rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
   netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
   netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
   netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
   netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
   sock_sendmsg_nosec net/socket.c:652 [inline]
   sock_sendmsg+0xcf/0x120 net/socket.c:672
   __sys_sendto+0x21a/0x330 net/socket.c:1998
   __do_sys_sendto net/socket.c:2010 [inline]
   __se_sys_sendto net/socket.c:2006 [inline]
   __x64_sys_sendto+0xdd/0x1b0 net/socket.c:2006
   do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
   entry_SYSCALL_64_after_hwframe+0x49/0xbe

-> (&dev->addr_list_lock_key#188){+...} {
   HARDIRQ-ON-W at:
                    lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
                    __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
                    _raw_spin_lock_bh+0x2f/0x40 kernel/locking/spinlock.c:175
                    spin_lock_bh include/linux/spinlock.h:343 [inline]
                    netif_addr_lock_bh include/linux/netdevice.h:4163 [inline]
                    __dev_mc_add+0x28/0xd0 net/core/dev_addr_lists.c:765
                    igmp6_group_added+0x375/0x420 net/ipv6/mcast.c:672
                    __ipv6_dev_mc_inc+0x814/0xc90 net/ipv6/mcast.c:931
                    ipv6_add_dev net/ipv6/addrconf.c:456 [inline]
                    ipv6_add_dev+0xa3d/0x10b0 net/ipv6/addrconf.c:363
                    addrconf_notify+0x960/0x2310 net/ipv6/addrconf.c:3497
                    notifier_call_chain+0xc0/0x230 kernel/notifier.c:83
                    call_netdevice_notifiers_info net/core/dev.c:1948 [inline]
                    call_netdevice_notifiers_info+0xb5/0x130 net/core/dev.c:1933
                    call_netdevice_notifiers_extack net/core/dev.c:1960 [inline]
                    call_netdevice_notifiers net/core/dev.c:1974 [inline]
                    register_netdevice+0x69f/0xfc0 net/core/dev.c:9401
                    macsec_newlink+0x2d4/0x1070 drivers/net/macsec.c:3875
                    __rtnl_newlink+0xf18/0x1590 net/core/rtnetlink.c:3319
                    rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
                    rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
                    netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
                    netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
                    netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
                    netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
                    sock_sendmsg_nosec net/socket.c:652 [inline]
                    sock_sendmsg+0xcf/0x120 net/socket.c:672
                    __sys_sendto+0x21a/0x330 net/socket.c:1998
                    __do_sys_sendto net/socket.c:2010 [inline]
                    __se_sys_sendto net/socket.c:2006 [inline]
                    __x64_sys_sendto+0xdd/0x1b0 net/socket.c:2006
                    do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
                    entry_SYSCALL_64_after_hwframe+0x49/0xbe
   INITIAL USE at:
                   lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
                   __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
                   _raw_spin_lock_bh+0x2f/0x40 kernel/locking/spinlock.c:175
                   spin_lock_bh include/linux/spinlock.h:343 [inline]
                   netif_addr_lock_bh include/linux/netdevice.h:4163 [inline]
                   __dev_mc_add+0x28/0xd0 net/core/dev_addr_lists.c:765
                   igmp6_group_added+0x375/0x420 net/ipv6/mcast.c:672
                   __ipv6_dev_mc_inc+0x814/0xc90 net/ipv6/mcast.c:931
                   ipv6_add_dev net/ipv6/addrconf.c:456 [inline]
                   ipv6_add_dev+0xa3d/0x10b0 net/ipv6/addrconf.c:363
                   addrconf_notify+0x960/0x2310 net/ipv6/addrconf.c:3497
                   notifier_call_chain+0xc0/0x230 kernel/notifier.c:83
                   call_netdevice_notifiers_info net/core/dev.c:1948 [inline]
                   call_netdevice_notifiers_info+0xb5/0x130 net/core/dev.c:1933
                   call_netdevice_notifiers_extack net/core/dev.c:1960 [inline]
                   call_netdevice_notifiers net/core/dev.c:1974 [inline]
                   register_netdevice+0x69f/0xfc0 net/core/dev.c:9401
                   macsec_newlink+0x2d4/0x1070 drivers/net/macsec.c:3875
                   __rtnl_newlink+0xf18/0x1590 net/core/rtnetlink.c:3319
                   rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
                   rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
                   netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
                   netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
                   netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
                   netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
                   sock_sendmsg_nosec net/socket.c:652 [inline]
                   sock_sendmsg+0xcf/0x120 net/socket.c:672
                   __sys_sendto+0x21a/0x330 net/socket.c:1998
                   __do_sys_sendto net/socket.c:2010 [inline]
                   __se_sys_sendto net/socket.c:2006 [inline]
                   __x64_sys_sendto+0xdd/0x1b0 net/socket.c:2006
                   do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
                   entry_SYSCALL_64_after_hwframe+0x49/0xbe
 }
 ... key      at: [<ffff888060822b48>] 0xffff888060822b48
 ... acquired at:
   lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
   __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
   _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151
   spin_lock include/linux/spinlock.h:338 [inline]
   peernet2id_alloc+0xcd/0x3f0 net/core/net_namespace.c:240
   rtnl_fill_link_netnsid net/core/rtnetlink.c:1565 [inline]
   rtnl_fill_ifinfo+0x1e7c/0x39b0 net/core/rtnetlink.c:1751
   rtmsg_ifinfo_build_skb+0xcd/0x1a0 net/core/rtnetlink.c:3685
   rtmsg_ifinfo_event.part.0+0x49/0xe0 net/core/rtnetlink.c:3717
   rtmsg_ifinfo_event net/core/rtnetlink.c:3728 [inline]
   rtmsg_ifinfo+0x7f/0xa0 net/core/rtnetlink.c:3726
   __dev_notify_flags+0x235/0x2c0 net/core/dev.c:8177
   __dev_set_promiscuity+0x191/0x210 net/core/dev.c:7953
   dev_set_promiscuity+0x4f/0xe0 net/core/dev.c:7973
   macsec_dev_change_rx_flags+0x13b/0x170 drivers/net/macsec.c:3423
   dev_change_rx_flags net/core/dev.c:7906 [inline]
   __dev_set_promiscuity.cold+0x2e3/0x340 net/core/dev.c:7950
   __dev_set_rx_mode+0x21f/0x300 net/core/dev.c:8055
   dev_uc_add+0xa1/0xb0 net/core/dev_addr_lists.c:592
   fdb_add_hw_addr+0xf3/0x280 net/bridge/br_fdb.c:165
   fdb_insert+0x173/0x1c0 net/bridge/br_fdb.c:542
   br_fdb_insert+0x35/0x50 net/bridge/br_fdb.c:554
   br_add_if+0xca2/0x1800 net/bridge/br_if.c:648
   do_set_master net/core/rtnetlink.c:2468 [inline]
   do_set_master+0x1d7/0x230 net/core/rtnetlink.c:2441
   do_setlink+0xaa2/0x35e0 net/core/rtnetlink.c:2603
   __rtnl_newlink+0xad5/0x1590 net/core/rtnetlink.c:3252
   rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
   rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
   netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
   netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
   netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
   netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
   sock_sendmsg_nosec net/socket.c:652 [inline]
   sock_sendmsg+0xcf/0x120 net/socket.c:672
   ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2343
   ___sys_sendmsg+0x100/0x170 net/socket.c:2397
   __sys_sendmsg+0xec/0x1b0 net/socket.c:2430
   do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
   entry_SYSCALL_64_after_hwframe+0x49/0xbe


the dependencies between the lock to be acquired
 and SOFTIRQ-irq-unsafe lock:
-> (&(&net->nsid_lock)->rlock){+.+.} {
   HARDIRQ-ON-W at:
                    lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
                    __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
                    _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151
                    spin_lock include/linux/spinlock.h:338 [inline]
                    peernet2id_alloc+0xcd/0x3f0 net/core/net_namespace.c:240
                    dev_change_net_namespace+0x2a6/0xd30 net/core/dev.c:10066
                    do_setlink+0x18b/0x35e0 net/core/rtnetlink.c:2501
                    __rtnl_newlink+0xad5/0x1590 net/core/rtnetlink.c:3252
                    rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
                    rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
                    netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
                    netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
                    netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
                    netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
                    sock_sendmsg_nosec net/socket.c:652 [inline]
                    sock_sendmsg+0xcf/0x120 net/socket.c:672
                    ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2343
                    ___sys_sendmsg+0x100/0x170 net/socket.c:2397
                    __sys_sendmsg+0xec/0x1b0 net/socket.c:2430
                    do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
                    entry_SYSCALL_64_after_hwframe+0x49/0xbe
   SOFTIRQ-ON-W at:
                    lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
                    __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
                    _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151
                    spin_lock include/linux/spinlock.h:338 [inline]
                    peernet2id_alloc+0xcd/0x3f0 net/core/net_namespace.c:240
                    dev_change_net_namespace+0x2a6/0xd30 net/core/dev.c:10066
                    do_setlink+0x18b/0x35e0 net/core/rtnetlink.c:2501
                    __rtnl_newlink+0xad5/0x1590 net/core/rtnetlink.c:3252
                    rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
                    rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
                    netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
                    netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
                    netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
                    netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
                    sock_sendmsg_nosec net/socket.c:652 [inline]
                    sock_sendmsg+0xcf/0x120 net/socket.c:672
                    ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2343
                    ___sys_sendmsg+0x100/0x170 net/socket.c:2397
                    __sys_sendmsg+0xec/0x1b0 net/socket.c:2430
                    do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
                    entry_SYSCALL_64_after_hwframe+0x49/0xbe
   INITIAL USE at:
                   lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
                   __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
                   _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151
                   spin_lock include/linux/spinlock.h:338 [inline]
                   peernet2id_alloc+0xcd/0x3f0 net/core/net_namespace.c:240
                   dev_change_net_namespace+0x2a6/0xd30 net/core/dev.c:10066
                   do_setlink+0x18b/0x35e0 net/core/rtnetlink.c:2501
                   __rtnl_newlink+0xad5/0x1590 net/core/rtnetlink.c:3252
                   rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
                   rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
                   netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
                   netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
                   netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
                   netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
                   sock_sendmsg_nosec net/socket.c:652 [inline]
                   sock_sendmsg+0xcf/0x120 net/socket.c:672
                   ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2343
                   ___sys_sendmsg+0x100/0x170 net/socket.c:2397
                   __sys_sendmsg+0xec/0x1b0 net/socket.c:2430
                   do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
                   entry_SYSCALL_64_after_hwframe+0x49/0xbe
 }
 ... key      at: [<ffffffff8cf4d8c0>] __key.69268+0x0/0x40
 ... acquired at:
   lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
   __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
   _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151
   spin_lock include/linux/spinlock.h:338 [inline]
   peernet2id_alloc+0xcd/0x3f0 net/core/net_namespace.c:240
   rtnl_fill_link_netnsid net/core/rtnetlink.c:1565 [inline]
   rtnl_fill_ifinfo+0x1e7c/0x39b0 net/core/rtnetlink.c:1751
   rtmsg_ifinfo_build_skb+0xcd/0x1a0 net/core/rtnetlink.c:3685
   rtmsg_ifinfo_event.part.0+0x49/0xe0 net/core/rtnetlink.c:3717
   rtmsg_ifinfo_event net/core/rtnetlink.c:3728 [inline]
   rtmsg_ifinfo+0x7f/0xa0 net/core/rtnetlink.c:3726
   __dev_notify_flags+0x235/0x2c0 net/core/dev.c:8177
   __dev_set_promiscuity+0x191/0x210 net/core/dev.c:7953
   dev_set_promiscuity+0x4f/0xe0 net/core/dev.c:7973
   macsec_dev_change_rx_flags+0x13b/0x170 drivers/net/macsec.c:3423
   dev_change_rx_flags net/core/dev.c:7906 [inline]
   __dev_set_promiscuity.cold+0x2e3/0x340 net/core/dev.c:7950
   __dev_set_rx_mode+0x21f/0x300 net/core/dev.c:8055
   dev_uc_add+0xa1/0xb0 net/core/dev_addr_lists.c:592
   fdb_add_hw_addr+0xf3/0x280 net/bridge/br_fdb.c:165
   fdb_insert+0x173/0x1c0 net/bridge/br_fdb.c:542
   br_fdb_insert+0x35/0x50 net/bridge/br_fdb.c:554
   br_add_if+0xca2/0x1800 net/bridge/br_if.c:648
   do_set_master net/core/rtnetlink.c:2468 [inline]
   do_set_master+0x1d7/0x230 net/core/rtnetlink.c:2441
   do_setlink+0xaa2/0x35e0 net/core/rtnetlink.c:2603
   __rtnl_newlink+0xad5/0x1590 net/core/rtnetlink.c:3252
   rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
   rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
   netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
   netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
   netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
   netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
   sock_sendmsg_nosec net/socket.c:652 [inline]
   sock_sendmsg+0xcf/0x120 net/socket.c:672
   ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2343
   ___sys_sendmsg+0x100/0x170 net/socket.c:2397
   __sys_sendmsg+0xec/0x1b0 net/socket.c:2430
   do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
   entry_SYSCALL_64_after_hwframe+0x49/0xbe


stack backtrace:
CPU: 0 PID: 11771 Comm: syz-executor.1 Not tainted 5.6.0-rc5-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x188/0x20d lib/dump_stack.c:118
 print_bad_irq_dependency kernel/locking/lockdep.c:2094 [inline]
 check_irq_usage.cold+0x586/0x6fe kernel/locking/lockdep.c:2292
 check_prev_add kernel/locking/lockdep.c:2479 [inline]
 check_prevs_add kernel/locking/lockdep.c:2580 [inline]
 validate_chain kernel/locking/lockdep.c:2970 [inline]
 __lock_acquire+0x2033/0x3ca0 kernel/locking/lockdep.c:3954
 lock_acquire+0x197/0x420 kernel/locking/lockdep.c:4484
 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
 _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151
 spin_lock include/linux/spinlock.h:338 [inline]
 peernet2id_alloc+0xcd/0x3f0 net/core/net_namespace.c:240
 rtnl_fill_link_netnsid net/core/rtnetlink.c:1565 [inline]
 rtnl_fill_ifinfo+0x1e7c/0x39b0 net/core/rtnetlink.c:1751
 rtmsg_ifinfo_build_skb+0xcd/0x1a0 net/core/rtnetlink.c:3685
 rtmsg_ifinfo_event.part.0+0x49/0xe0 net/core/rtnetlink.c:3717
 rtmsg_ifinfo_event net/core/rtnetlink.c:3728 [inline]
 rtmsg_ifinfo+0x7f/0xa0 net/core/rtnetlink.c:3726
 __dev_notify_flags+0x235/0x2c0 net/core/dev.c:8177
 __dev_set_promiscuity+0x191/0x210 net/core/dev.c:7953
 dev_set_promiscuity+0x4f/0xe0 net/core/dev.c:7973
 macsec_dev_change_rx_flags+0x13b/0x170 drivers/net/macsec.c:3423
 dev_change_rx_flags net/core/dev.c:7906 [inline]
 __dev_set_promiscuity.cold+0x2e3/0x340 net/core/dev.c:7950
 __dev_set_rx_mode+0x21f/0x300 net/core/dev.c:8055
 dev_uc_add+0xa1/0xb0 net/core/dev_addr_lists.c:592
 fdb_add_hw_addr+0xf3/0x280 net/bridge/br_fdb.c:165
 fdb_insert+0x173/0x1c0 net/bridge/br_fdb.c:542
 br_fdb_insert+0x35/0x50 net/bridge/br_fdb.c:554
 br_add_if+0xca2/0x1800 net/bridge/br_if.c:648
 do_set_master net/core/rtnetlink.c:2468 [inline]
 do_set_master+0x1d7/0x230 net/core/rtnetlink.c:2441
 do_setlink+0xaa2/0x35e0 net/core/rtnetlink.c:2603
 __rtnl_newlink+0xad5/0x1590 net/core/rtnetlink.c:3252
 rtnl_newlink+0x64/0xa0 net/core/rtnetlink.c:3377
 rtnetlink_rcv_msg+0x44e/0xad0 net/core/rtnetlink.c:5440
 netlink_rcv_skb+0x15a/0x410 net/netlink/af_netlink.c:2478
 netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
 netlink_unicast+0x537/0x740 net/netlink/af_netlink.c:1329
 netlink_sendmsg+0x882/0xe10 net/netlink/af_netlink.c:1918
 sock_sendmsg_nosec net/socket.c:652 [inline]
 sock_sendmsg+0xcf/0x120 net/socket.c:672
 ____sys_sendmsg+0x6b9/0x7d0 net/socket.c:2343
 ___sys_sendmsg+0x100/0x170 net/socket.c:2397
 __sys_sendmsg+0xec/0x1b0 net/socket.c:2430
 do_syscall_64+0xf6/0x7d0 arch/x86/entry/common.c:294
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x45c849
Code: ad b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 7b b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007efdbe996c78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 00007efdbe9976d4 RCX: 000000000045c849
RDX: 0000000000000000 RSI: 0000000020000000 RDI: 0000000000000006
RBP: 000000000076bfa0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00000000ffffffff
R13: 00000000000009f9 R14: 00000000004ccb17 R15: 000000000076bfac


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

                 reply	other threads:[~2020-03-21  9:40 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0000000000003f417405a15a30cd@google.com \
    --to=syzbot+3f960c64a104eaa2c813@syzkaller.appspotmail.com \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=edumazet@google.com \
    --cc=gnault@redhat.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.dichtel@6wind.com \
    --cc=syzkaller-bugs@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.