syzbot


possible deadlock in br_forward_delay_timer_expired (2)

Status: fixed on 2024/07/10 10:07
Subsystems: net
[Documentation on labels]
Fix commit: 62e58ddb1465 net: add softirq safety to netdev_rename_lock
First crash: 165d, last: 165d
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream possible deadlock in br_forward_delay_timer_expired net 1 481d 477d 0/28 auto-obsoleted due to no activity on 2023/11/17 08:05

Sample crash report:
team0: left promiscuous mode
=====================================================
WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected
6.10.0-rc2-syzkaller-00249-gbe27b8965297 #0 Not tainted
-----------------------------------------------------
syz-executor.2/9449 [HC0[0]:SC0[2]:HE0:SE0] is trying to acquire:
ffffffff8f5de668 (netdev_rename_lock.seqcount){+.+.}-{0:0}, at: rtnl_fill_ifinfo+0x38e/0x2270 net/core/rtnetlink.c:1839

and this task is already holding:
ffff888060c64cb8 (&br->lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline]
ffff888060c64cb8 (&br->lock){+.-.}-{2:2}, at: br_port_slave_changelink+0x3d/0x150 net/bridge/br_netlink.c:1212
which would create a new lock dependency:
 (&br->lock){+.-.}-{2:2} -> (netdev_rename_lock.seqcount){+.+.}-{0:0}

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

... which became SOFTIRQ-irq-safe at:
  lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
  __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline]
  _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154
  spin_lock include/linux/spinlock.h:351 [inline]
  br_forward_delay_timer_expired+0x50/0x440 net/bridge/br_stp_timer.c:86
  call_timer_fn+0x18e/0x650 kernel/time/timer.c:1792
  expire_timers kernel/time/timer.c:1843 [inline]
  __run_timers kernel/time/timer.c:2417 [inline]
  __run_timer_base+0x66a/0x8e0 kernel/time/timer.c:2428
  run_timer_base kernel/time/timer.c:2437 [inline]
  run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2447
  handle_softirqs+0x2c4/0x970 kernel/softirq.c:554
  __do_softirq kernel/softirq.c:588 [inline]
  invoke_softirq kernel/softirq.c:428 [inline]
  __irq_exit_rcu+0xf4/0x1c0 kernel/softirq.c:637
  irq_exit_rcu+0x9/0x30 kernel/softirq.c:649
  instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
  sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1043
  asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
  lock_acquire+0x264/0x550 kernel/locking/lockdep.c:5758
  fs_reclaim_acquire+0xaf/0x140 mm/page_alloc.c:3800
  might_alloc include/linux/sched/mm.h:334 [inline]
  slab_pre_alloc_hook mm/slub.c:3890 [inline]
  slab_alloc_node mm/slub.c:3980 [inline]
  kmalloc_trace_noprof+0x3d/0x2c0 mm/slub.c:4147
  kmalloc_noprof include/linux/slab.h:660 [inline]
  kzalloc_noprof include/linux/slab.h:778 [inline]
  class_dir_create_and_add drivers/base/core.c:3255 [inline]
  get_device_parent+0x2a7/0x410 drivers/base/core.c:3315
  device_add+0x325/0xbf0 drivers/base/core.c:3645
  netdev_register_kobject+0x17e/0x320 net/core/net-sysfs.c:2136
  register_netdevice+0x11d5/0x19e0 net/core/dev.c:10375
  nsim_init_netdevsim drivers/net/netdevsim/netdev.c:690 [inline]
  nsim_create+0x647/0x890 drivers/net/netdevsim/netdev.c:750
  __nsim_dev_port_add+0x6c0/0xae0 drivers/net/netdevsim/dev.c:1390
  nsim_dev_port_add_all drivers/net/netdevsim/dev.c:1446 [inline]
  nsim_dev_reload_create drivers/net/netdevsim/dev.c:1498 [inline]
  nsim_dev_reload_up+0x69b/0x8e0 drivers/net/netdevsim/dev.c:985
  devlink_reload+0x478/0x870 net/devlink/dev.c:474
  devlink_nl_reload_doit+0xbd6/0xe50 net/devlink/dev.c:586
  genl_family_rcv_msg_doit net/netlink/genetlink.c:1115 [inline]
  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
  genl_rcv_msg+0xb14/0xec0 net/netlink/genetlink.c:1210
  netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219
  netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
  netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
  netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
  sock_sendmsg_nosec net/socket.c:730 [inline]
  __sock_sendmsg+0x221/0x270 net/socket.c:745
  ____sys_sendmsg+0x525/0x7d0 net/socket.c:2585
  ___sys_sendmsg net/socket.c:2639 [inline]
  __sys_sendmsg+0x2b0/0x3a0 net/socket.c:2668
  do_syscall_x64 arch/x86/entry/common.c:52 [inline]
  do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
  entry_SYSCALL_64_after_hwframe+0x77/0x7f

to a SOFTIRQ-irq-unsafe lock:
 (netdev_rename_lock.seqcount){+.+.}-{0:0}

... which became SOFTIRQ-irq-unsafe at:
...
  lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
  do_write_seqcount_begin_nested include/linux/seqlock.h:469 [inline]
  do_write_seqcount_begin include/linux/seqlock.h:495 [inline]
  write_seqlock include/linux/seqlock.h:823 [inline]
  dev_change_name+0x184/0x920 net/core/dev.c:1229
  do_setlink+0xa4b/0x41f0 net/core/rtnetlink.c:2880
  __rtnl_newlink net/core/rtnetlink.c:3696 [inline]
  rtnl_newlink+0x180b/0x20a0 net/core/rtnetlink.c:3743
  rtnetlink_rcv_msg+0x89b/0x1180 net/core/rtnetlink.c:6635
  netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
  netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
  netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
  netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
  sock_sendmsg_nosec net/socket.c:730 [inline]
  __sock_sendmsg+0x221/0x270 net/socket.c:745
  __sys_sendto+0x3a4/0x4f0 net/socket.c:2192
  __do_sys_sendto net/socket.c:2204 [inline]
  __se_sys_sendto net/socket.c:2200 [inline]
  __x64_sys_sendto+0xde/0x100 net/socket.c:2200
  do_syscall_x64 arch/x86/entry/common.c:52 [inline]
  do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
  entry_SYSCALL_64_after_hwframe+0x77/0x7f

other info that might help us debug this:

 Possible interrupt unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(netdev_rename_lock.seqcount);
                               local_irq_disable();
                               lock(&br->lock);
                               lock(netdev_rename_lock.seqcount);
  <Interrupt>
    lock(&br->lock);

 *** DEADLOCK ***

3 locks held by syz-executor.2/9449:
 #0: ffffffff8f5e7448 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:79 [inline]
 #0: ffffffff8f5e7448 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x842/0x1180 net/core/rtnetlink.c:6632
 #1: ffff888060c64cb8 (&br->lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline]
 #1: ffff888060c64cb8 (&br->lock){+.-.}-{2:2}, at: br_port_slave_changelink+0x3d/0x150 net/bridge/br_netlink.c:1212
 #2: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:329 [inline]
 #2: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:781 [inline]
 #2: ffffffff8e333fa0 (rcu_read_lock){....}-{1:2}, at: team_change_rx_flags+0x29/0x330 drivers/net/team/team_core.c:1767

the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
-> (&br->lock){+.-.}-{2:2} {
   HARDIRQ-ON-W at:
                    lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
                    __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline]
                    _raw_spin_lock_bh+0x35/0x50 kernel/locking/spinlock.c:178
                    spin_lock_bh include/linux/spinlock.h:356 [inline]
                    br_add_if+0xb34/0xef0 net/bridge/br_if.c:682
                    do_set_master net/core/rtnetlink.c:2701 [inline]
                    do_setlink+0xe70/0x41f0 net/core/rtnetlink.c:2907
                    __rtnl_newlink net/core/rtnetlink.c:3696 [inline]
                    rtnl_newlink+0x180b/0x20a0 net/core/rtnetlink.c:3743
                    rtnetlink_rcv_msg+0x89b/0x1180 net/core/rtnetlink.c:6635
                    netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
                    netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
                    netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
                    netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
                    sock_sendmsg_nosec net/socket.c:730 [inline]
                    __sock_sendmsg+0x221/0x270 net/socket.c:745
                    __sys_sendto+0x3a4/0x4f0 net/socket.c:2192
                    __do_sys_sendto net/socket.c:2204 [inline]
                    __se_sys_sendto net/socket.c:2200 [inline]
                    __x64_sys_sendto+0xde/0x100 net/socket.c:2200
                    do_syscall_x64 arch/x86/entry/common.c:52 [inline]
                    do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   IN-SOFTIRQ-W at:
                    lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
                    __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline]
                    _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154
                    spin_lock include/linux/spinlock.h:351 [inline]
                    br_forward_delay_timer_expired+0x50/0x440 net/bridge/br_stp_timer.c:86
                    call_timer_fn+0x18e/0x650 kernel/time/timer.c:1792
                    expire_timers kernel/time/timer.c:1843 [inline]
                    __run_timers kernel/time/timer.c:2417 [inline]
                    __run_timer_base+0x66a/0x8e0 kernel/time/timer.c:2428
                    run_timer_base kernel/time/timer.c:2437 [inline]
                    run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2447
                    handle_softirqs+0x2c4/0x970 kernel/softirq.c:554
                    __do_softirq kernel/softirq.c:588 [inline]
                    invoke_softirq kernel/softirq.c:428 [inline]
                    __irq_exit_rcu+0xf4/0x1c0 kernel/softirq.c:637
                    irq_exit_rcu+0x9/0x30 kernel/softirq.c:649
                    instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline]
                    sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1043
                    asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
                    lock_acquire+0x264/0x550 kernel/locking/lockdep.c:5758
                    fs_reclaim_acquire+0xaf/0x140 mm/page_alloc.c:3800
                    might_alloc include/linux/sched/mm.h:334 [inline]
                    slab_pre_alloc_hook mm/slub.c:3890 [inline]
                    slab_alloc_node mm/slub.c:3980 [inline]
                    kmalloc_trace_noprof+0x3d/0x2c0 mm/slub.c:4147
                    kmalloc_noprof include/linux/slab.h:660 [inline]
                    kzalloc_noprof include/linux/slab.h:778 [inline]
                    class_dir_create_and_add drivers/base/core.c:3255 [inline]
                    get_device_parent+0x2a7/0x410 drivers/base/core.c:3315
                    device_add+0x325/0xbf0 drivers/base/core.c:3645
                    netdev_register_kobject+0x17e/0x320 net/core/net-sysfs.c:2136
                    register_netdevice+0x11d5/0x19e0 net/core/dev.c:10375
                    nsim_init_netdevsim drivers/net/netdevsim/netdev.c:690 [inline]
                    nsim_create+0x647/0x890 drivers/net/netdevsim/netdev.c:750
                    __nsim_dev_port_add+0x6c0/0xae0 drivers/net/netdevsim/dev.c:1390
                    nsim_dev_port_add_all drivers/net/netdevsim/dev.c:1446 [inline]
                    nsim_dev_reload_create drivers/net/netdevsim/dev.c:1498 [inline]
                    nsim_dev_reload_up+0x69b/0x8e0 drivers/net/netdevsim/dev.c:985
                    devlink_reload+0x478/0x870 net/devlink/dev.c:474
                    devlink_nl_reload_doit+0xbd6/0xe50 net/devlink/dev.c:586
                    genl_family_rcv_msg_doit net/netlink/genetlink.c:1115 [inline]
                    genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
                    genl_rcv_msg+0xb14/0xec0 net/netlink/genetlink.c:1210
                    netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
                    genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219
                    netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
                    netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
                    netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
                    sock_sendmsg_nosec net/socket.c:730 [inline]
                    __sock_sendmsg+0x221/0x270 net/socket.c:745
                    ____sys_sendmsg+0x525/0x7d0 net/socket.c:2585
                    ___sys_sendmsg net/socket.c:2639 [inline]
                    __sys_sendmsg+0x2b0/0x3a0 net/socket.c:2668
                    do_syscall_x64 arch/x86/entry/common.c:52 [inline]
                    do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL USE at:
                   lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
                   __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline]
                   _raw_spin_lock_bh+0x35/0x50 kernel/locking/spinlock.c:178
                   spin_lock_bh include/linux/spinlock.h:356 [inline]
                   br_add_if+0xb34/0xef0 net/bridge/br_if.c:682
                   do_set_master net/core/rtnetlink.c:2701 [inline]
                   do_setlink+0xe70/0x41f0 net/core/rtnetlink.c:2907
                   __rtnl_newlink net/core/rtnetlink.c:3696 [inline]
                   rtnl_newlink+0x180b/0x20a0 net/core/rtnetlink.c:3743
                   rtnetlink_rcv_msg+0x89b/0x1180 net/core/rtnetlink.c:6635
                   netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
                   netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
                   netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
                   netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
                   sock_sendmsg_nosec net/socket.c:730 [inline]
                   __sock_sendmsg+0x221/0x270 net/socket.c:745
                   __sys_sendto+0x3a4/0x4f0 net/socket.c:2192
                   __do_sys_sendto net/socket.c:2204 [inline]
                   __se_sys_sendto net/socket.c:2200 [inline]
                   __x64_sys_sendto+0xde/0x100 net/socket.c:2200
                   do_syscall_x64 arch/x86/entry/common.c:52 [inline]
                   do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
                   entry_SYSCALL_64_after_hwframe+0x77/0x7f
 }
 ... key      at: [<ffffffff94b9a1a0>] br_dev_setup.__key+0x0/0x20

the dependencies between the lock to be acquired
 and SOFTIRQ-irq-unsafe lock:
-> (netdev_rename_lock.seqcount){+.+.}-{0:0} {
   HARDIRQ-ON-W at:
                    lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
                    do_write_seqcount_begin_nested include/linux/seqlock.h:469 [inline]
                    do_write_seqcount_begin include/linux/seqlock.h:495 [inline]
                    write_seqlock include/linux/seqlock.h:823 [inline]
                    dev_change_name+0x184/0x920 net/core/dev.c:1229
                    do_setlink+0xa4b/0x41f0 net/core/rtnetlink.c:2880
                    __rtnl_newlink net/core/rtnetlink.c:3696 [inline]
                    rtnl_newlink+0x180b/0x20a0 net/core/rtnetlink.c:3743
                    rtnetlink_rcv_msg+0x89b/0x1180 net/core/rtnetlink.c:6635
                    netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
                    netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
                    netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
                    netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
                    sock_sendmsg_nosec net/socket.c:730 [inline]
                    __sock_sendmsg+0x221/0x270 net/socket.c:745
                    __sys_sendto+0x3a4/0x4f0 net/socket.c:2192
                    __do_sys_sendto net/socket.c:2204 [inline]
                    __se_sys_sendto net/socket.c:2200 [inline]
                    __x64_sys_sendto+0xde/0x100 net/socket.c:2200
                    do_syscall_x64 arch/x86/entry/common.c:52 [inline]
                    do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   SOFTIRQ-ON-W at:
                    lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
                    do_write_seqcount_begin_nested include/linux/seqlock.h:469 [inline]
                    do_write_seqcount_begin include/linux/seqlock.h:495 [inline]
                    write_seqlock include/linux/seqlock.h:823 [inline]
                    dev_change_name+0x184/0x920 net/core/dev.c:1229
                    do_setlink+0xa4b/0x41f0 net/core/rtnetlink.c:2880
                    __rtnl_newlink net/core/rtnetlink.c:3696 [inline]
                    rtnl_newlink+0x180b/0x20a0 net/core/rtnetlink.c:3743
                    rtnetlink_rcv_msg+0x89b/0x1180 net/core/rtnetlink.c:6635
                    netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
                    netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
                    netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
                    netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
                    sock_sendmsg_nosec net/socket.c:730 [inline]
                    __sock_sendmsg+0x221/0x270 net/socket.c:745
                    __sys_sendto+0x3a4/0x4f0 net/socket.c:2192
                    __do_sys_sendto net/socket.c:2204 [inline]
                    __se_sys_sendto net/socket.c:2200 [inline]
                    __x64_sys_sendto+0xde/0x100 net/socket.c:2200
                    do_syscall_x64 arch/x86/entry/common.c:52 [inline]
                    do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL USE at:
                   lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
                   do_write_seqcount_begin_nested include/linux/seqlock.h:469 [inline]
                   do_write_seqcount_begin include/linux/seqlock.h:495 [inline]
                   write_seqlock include/linux/seqlock.h:823 [inline]
                   dev_change_name+0x184/0x920 net/core/dev.c:1229
                   do_setlink+0xa4b/0x41f0 net/core/rtnetlink.c:2880
                   __rtnl_newlink net/core/rtnetlink.c:3696 [inline]
                   rtnl_newlink+0x180b/0x20a0 net/core/rtnetlink.c:3743
                   rtnetlink_rcv_msg+0x89b/0x1180 net/core/rtnetlink.c:6635
                   netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
                   netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
                   netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
                   netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
                   sock_sendmsg_nosec net/socket.c:730 [inline]
                   __sock_sendmsg+0x221/0x270 net/socket.c:745
                   __sys_sendto+0x3a4/0x4f0 net/socket.c:2192
                   __do_sys_sendto net/socket.c:2204 [inline]
                   __se_sys_sendto net/socket.c:2200 [inline]
                   __x64_sys_sendto+0xde/0x100 net/socket.c:2200
                   do_syscall_x64 arch/x86/entry/common.c:52 [inline]
                   do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
                   entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL READ USE at:
                        lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
                        seqcount_lockdep_reader_access include/linux/seqlock.h:72 [inline]
                        read_seqbegin include/linux/seqlock.h:772 [inline]
                        netdev_copy_name+0x168/0x2c0 net/core/dev.c:949
                        rtnl_fill_ifinfo+0x38e/0x2270 net/core/rtnetlink.c:1839
                        rtmsg_ifinfo_build_skb+0x18a/0x260 net/core/rtnetlink.c:4073
                        rtmsg_ifinfo_event net/core/rtnetlink.c:4107 [inline]
                        rtmsg_ifinfo+0x91/0x1b0 net/core/rtnetlink.c:4116
                        register_netdevice+0x1665/0x19e0 net/core/dev.c:10422
                        register_netdev+0x3b/0x50 net/core/dev.c:10512
                        loopback_net_init+0x73/0x150 drivers/net/loopback.c:217
                        ops_init+0x359/0x610 net/core/net_namespace.c:139
                        __register_pernet_operations net/core/net_namespace.c:1247 [inline]
                        register_pernet_operations+0x2cb/0x660 net/core/net_namespace.c:1320
                        register_pernet_device+0x33/0x80 net/core/net_namespace.c:1407
                        net_dev_init+0xfcd/0x10d0 net/core/dev.c:11956
                        do_one_initcall+0x248/0x880 init/main.c:1267
                        do_initcall_level+0x157/0x210 init/main.c:1329
                        do_initcalls+0x3f/0x80 init/main.c:1345
                        kernel_init_freeable+0x435/0x5d0 init/main.c:1578
                        kernel_init+0x1d/0x2b0 init/main.c:1467
                        ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
                        ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 }
 ... key      at: [<ffffffff8f5de668>] netdev_rename_lock+0x8/0xa0
 ... acquired at:
   lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
   seqcount_lockdep_reader_access include/linux/seqlock.h:72 [inline]
   read_seqbegin include/linux/seqlock.h:772 [inline]
   netdev_copy_name+0x168/0x2c0 net/core/dev.c:949
   rtnl_fill_ifinfo+0x38e/0x2270 net/core/rtnetlink.c:1839
   rtmsg_ifinfo_build_skb+0x18a/0x260 net/core/rtnetlink.c:4073
   rtmsg_ifinfo_event net/core/rtnetlink.c:4107 [inline]
   rtmsg_ifinfo+0x91/0x1b0 net/core/rtnetlink.c:4116
   __dev_notify_flags+0xf7/0x400 net/core/dev.c:8816
   __dev_set_promiscuity+0x152/0x5a0 net/core/dev.c:8588
   dev_set_promiscuity+0x51/0xe0 net/core/dev.c:8608
   team_change_rx_flags+0x203/0x330 drivers/net/team/team_core.c:1771
   dev_change_rx_flags net/core/dev.c:8541 [inline]
   __dev_set_promiscuity+0x406/0x5a0 net/core/dev.c:8585
   dev_set_promiscuity+0x51/0xe0 net/core/dev.c:8608
   br_port_clear_promisc net/bridge/br_if.c:135 [inline]
   br_manage_promisc+0x505/0x590 net/bridge/br_if.c:172
   nbp_update_port_count net/bridge/br_if.c:242 [inline]
   br_port_flags_change+0x161/0x1f0 net/bridge/br_if.c:761
   br_setport+0xcb5/0x16d0 net/bridge/br_netlink.c:1000
   br_port_slave_changelink+0x135/0x150 net/bridge/br_netlink.c:1213
   __rtnl_newlink net/core/rtnetlink.c:3689 [inline]
   rtnl_newlink+0x169f/0x20a0 net/core/rtnetlink.c:3743
   rtnetlink_rcv_msg+0x89b/0x1180 net/core/rtnetlink.c:6635
   netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
   netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
   netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
   netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
   sock_sendmsg_nosec net/socket.c:730 [inline]
   __sock_sendmsg+0x221/0x270 net/socket.c:745
   ____sys_sendmsg+0x525/0x7d0 net/socket.c:2585
   ___sys_sendmsg net/socket.c:2639 [inline]
   __sys_sendmsg+0x2b0/0x3a0 net/socket.c:2668
   do_syscall_x64 arch/x86/entry/common.c:52 [inline]
   do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
   entry_SYSCALL_64_after_hwframe+0x77/0x7f


stack backtrace:
CPU: 0 PID: 9449 Comm: syz-executor.2 Not tainted 6.10.0-rc2-syzkaller-00249-gbe27b8965297 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/07/2024
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114
 print_bad_irq_dependency kernel/locking/lockdep.c:2626 [inline]
 check_irq_usage kernel/locking/lockdep.c:2865 [inline]
 check_prev_add kernel/locking/lockdep.c:3138 [inline]
 check_prevs_add kernel/locking/lockdep.c:3253 [inline]
 validate_chain+0x4de0/0x5900 kernel/locking/lockdep.c:3869
 __lock_acquire+0x1346/0x1fd0 kernel/locking/lockdep.c:5137
 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754
 seqcount_lockdep_reader_access include/linux/seqlock.h:72 [inline]
 read_seqbegin include/linux/seqlock.h:772 [inline]
 netdev_copy_name+0x168/0x2c0 net/core/dev.c:949
 rtnl_fill_ifinfo+0x38e/0x2270 net/core/rtnetlink.c:1839
 rtmsg_ifinfo_build_skb+0x18a/0x260 net/core/rtnetlink.c:4073
 rtmsg_ifinfo_event net/core/rtnetlink.c:4107 [inline]
 rtmsg_ifinfo+0x91/0x1b0 net/core/rtnetlink.c:4116
 __dev_notify_flags+0xf7/0x400 net/core/dev.c:8816
 __dev_set_promiscuity+0x152/0x5a0 net/core/dev.c:8588
 dev_set_promiscuity+0x51/0xe0 net/core/dev.c:8608
 team_change_rx_flags+0x203/0x330 drivers/net/team/team_core.c:1771
 dev_change_rx_flags net/core/dev.c:8541 [inline]
 __dev_set_promiscuity+0x406/0x5a0 net/core/dev.c:8585
 dev_set_promiscuity+0x51/0xe0 net/core/dev.c:8608
 br_port_clear_promisc net/bridge/br_if.c:135 [inline]
 br_manage_promisc+0x505/0x590 net/bridge/br_if.c:172
 nbp_update_port_count net/bridge/br_if.c:242 [inline]
 br_port_flags_change+0x161/0x1f0 net/bridge/br_if.c:761
 br_setport+0xcb5/0x16d0 net/bridge/br_netlink.c:1000
 br_port_slave_changelink+0x135/0x150 net/bridge/br_netlink.c:1213
 __rtnl_newlink net/core/rtnetlink.c:3689 [inline]
 rtnl_newlink+0x169f/0x20a0 net/core/rtnetlink.c:3743
 rtnetlink_rcv_msg+0x89b/0x1180 net/core/rtnetlink.c:6635
 netlink_rcv_skb+0x1e3/0x430 net/netlink/af_netlink.c:2564
 netlink_unicast_kernel net/netlink/af_netlink.c:1335 [inline]
 netlink_unicast+0x7ea/0x980 net/netlink/af_netlink.c:1361
 netlink_sendmsg+0x8db/0xcb0 net/netlink/af_netlink.c:1905
 sock_sendmsg_nosec net/socket.c:730 [inline]
 __sock_sendmsg+0x221/0x270 net/socket.c:745
 ____sys_sendmsg+0x525/0x7d0 net/socket.c:2585
 ___sys_sendmsg net/socket.c:2639 [inline]
 __sys_sendmsg+0x2b0/0x3a0 net/socket.c:2668
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f3b3047cf29
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 e1 20 00 00 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 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f3b311740c8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
RAX: ffffffffffffffda RBX: 00007f3b305b4050 RCX: 00007f3b3047cf29
RDX: 0000000000000000 RSI: 0000000020000000 RDI: 0000000000000008
RBP: 00007f3b304ec074 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 000000000000006e R14: 00007f3b305b4050 R15: 00007ffca2f3dc68
 </TASK>

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/06/19 20:51 net be27b8965297 41b7e219 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-this-kasan-gce possible deadlock in br_forward_delay_timer_expired
* Struck through repros no longer work on HEAD.