Netdev List
 help / color / mirror / Atom feed
From: syzbot ci <syzbot+cieee6b6974f07e792@syzkaller.appspotmail.com>
To: davem@davemloft.net, dsahern@kernel.org, edumazet@google.com,
	 horms@kernel.org, idosch@nvidia.com, jiayuan.chen@linux.dev,
	kuba@kernel.org,  kuniyu@google.com,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	 pabeni@redhat.com
Cc: syzbot@lists.linux.dev, syzkaller-bugs@googlegroups.com
Subject: [syzbot ci] Re: ipv6: anycast: insert aca into global hash under idev->lock
Date: Fri, 29 May 2026 01:31:51 -0700	[thread overview]
Message-ID: <6a194ef7.ba3b1513.1890b4.0000.GAE@google.com> (raw)
In-Reply-To: <20260529032026.363856-1-jiayuan.chen@linux.dev>

syzbot ci has tested the following series

[v1] ipv6: anycast: insert aca into global hash under idev->lock
https://lore.kernel.org/all/20260529032026.363856-1-jiayuan.chen@linux.dev
* [PATCH net] ipv6: anycast: insert aca into global hash under idev->lock

and found the following issues:
* possible deadlock in __ipv6_dev_ac_dec
* possible deadlock in addrconf_rs_timer

Full report is available here:
https://ci.syzbot.org/series/00cb20f0-c599-468e-b3de-b109499c1db5

***

possible deadlock in __ipv6_dev_ac_dec

tree:      net
URL:       https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git
base:      ab4ac5a93b1b76aa6b12cadcba30450868d21a6f
arch:      amd64
compiler:  Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
config:    https://ci.syzbot.org/builds/9ba0a1a3-43c2-4334-8f26-942c72690313/config
syz repro: https://ci.syzbot.org/findings/54a509b9-82dc-4a61-a5c4-701533f277d6/syz_repro

========================================================
WARNING: possible irq lock inversion dependency detected
syzkaller #0 Not tainted
--------------------------------------------------------
syz.2.19/5872 just changed the state of lock:
ffffffff8fef3d98 (acaddr_hash_lock){+.+.}-{3:3}, at: spin_lock include/linux/spinlock.h:342 [inline]
ffffffff8fef3d98 (acaddr_hash_lock){+.+.}-{3:3}, at: ipv6_del_acaddr_hash net/ipv6/anycast.c:253 [inline]
ffffffff8fef3d98 (acaddr_hash_lock){+.+.}-{3:3}, at: __ipv6_dev_ac_dec+0x459/0x690 net/ipv6/anycast.c:419
but this lock was taken by another, SOFTIRQ-safe lock in the past:
 (&ndev->lock){++--}-{3:3}


and interrupts could create inverse lock ordering between them.


other info that might help us debug this:
 Possible interrupt unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(acaddr_hash_lock
);
                               local_irq_disable();
                               lock(&ndev->lock);
                               lock(acaddr_hash_lock);
  <Interrupt>
    lock(&ndev->lock);

 *** DEADLOCK ***

1 lock held by syz.2.19/5872:
 #0: ffff8881b52abe40 (&sb->s_type->i_mutex_key#13){+.+.}-{4:4}
, at: inode_lock include/linux/fs.h:1029 [inline]
, at: __sock_release net/socket.c:721 [inline]
, at: sock_close+0x9b/0x240 net/socket.c:1514

the shortest dependencies between 2nd lock and 1st lock:
 -> (&ndev->lock){++--}-{3:3} {
    HARDIRQ-ON-W at:
                      lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                      __raw_write_lock_bh include/linux/rwlock_api_smp.h:221 [inline]
                      _raw_write_lock_bh+0x36/0x50 kernel/locking/spinlock.c:338
                      addrconf_permanent_addr+0x16a/0xa20 net/ipv6/addrconf.c:3627
                      addrconf_notify+0x864/0x1050 net/ipv6/addrconf.c:3706
                      notifier_call_chain+0x1ad/0x3d0 kernel/notifier.c:85
                      call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
                      call_netdevice_notifiers net/core/dev.c:2301 [inline]
                      __dev_notify_flags+0x1a9/0x310 net/core/dev.c:9797
                      netif_change_flags+0xe8/0x1a0 net/core/dev.c:9826
                      dev_change_flags+0x130/0x270 net/core/dev_api.c:68
                      devinet_ioctl+0x9f2/0x1b30 net/ipv4/devinet.c:1199
                      inet_ioctl+0x42a/0x560 net/ipv4/af_inet.c:1011
                      sock_do_ioctl+0x101/0x320 net/socket.c:1313
                      sock_ioctl+0x5c6/0x7f0 net/socket.c:1434
                      vfs_ioctl fs/ioctl.c:51 [inline]
                      __do_sys_ioctl fs/ioctl.c:597 [inline]
                      __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
                      do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
                      do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
                      entry_SYSCALL_64_after_hwframe+0x77/0x7f
    HARDIRQ-ON-R at:
                      lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                      __raw_read_lock_bh include/linux/rwlock_api_smp.h:192 [inline]
                      _raw_read_lock_bh+0x3e/0x50 kernel/locking/spinlock.c:256
                      inet6_fill_ifla6_attrs+0x1117/0x25e0 net/ipv6/addrconf.c:5858
                      inet6_fill_link_af+0x9b/0x120 net/ipv6/addrconf.c:5893
                      rtnl_fill_link_af+0x1c8/0x440 net/core/rtnetlink.c:1919
                      rtnl_fill_ifinfo+0x1e08/0x20f0 net/core/rtnetlink.c:2190
                      rtmsg_ifinfo_build_skb+0x17d/0x260 net/core/rtnetlink.c:4454
                      rtmsg_ifinfo_event net/core/rtnetlink.c:4487 [inline]
                      rtmsg_ifinfo+0x8c/0x1a0 net/core/rtnetlink.c:4496
                      register_netdevice+0x1aca/0x1ec0 net/core/dev.c:11475
                      register_netdev+0x40/0x60 net/core/dev.c:11539
                      vti6_init_net+0x238/0x370 net/ipv6/ip6_vti.c:1167
                      ops_init+0x35c/0x5c0 net/core/net_namespace.c:137
                      __register_pernet_operations net/core/net_namespace.c:1318 [inline]
                      register_pernet_operations+0x343/0x830 net/core/net_namespace.c:1395
                      register_pernet_device+0x2a/0x80 net/core/net_namespace.c:1482
                      vti6_tunnel_init+0x13/0x170 net/ipv6/ip6_vti.c:1251
                      do_one_initcall+0x250/0x870 init/main.c:1392
                      do_initcall_level+0x104/0x190 init/main.c:1454
                      do_initcalls+0x59/0xa0 init/main.c:1470
                      kernel_init_freeable+0x2a6/0x3e0 init/main.c:1703
                      kernel_init+0x1d/0x1d0 init/main.c:1593
                      ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
                      ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
    IN-SOFTIRQ-W at:
                      lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                      __raw_write_lock include/linux/rwlock_api_smp.h:229 [inline]
                      _raw_write_lock+0x2e/0x40 kernel/locking/spinlock.c:304
                      addrconf_rs_timer+0xc8/0x6d0 net/ipv6/addrconf.c:4033
                      call_timer_fn+0x192/0x5e0 kernel/time/timer.c:1748
                      expire_timers kernel/time/timer.c:1799 [inline]
                      __run_timers kernel/time/timer.c:2374 [inline]
                      __run_timer_base+0x652/0x8b0 kernel/time/timer.c:2386
                      run_timer_base kernel/time/timer.c:2395 [inline]
                      run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2405
                      handle_softirqs+0x22a/0x840 kernel/softirq.c:622
                      __do_softirq kernel/softirq.c:656 [inline]
                      invoke_softirq kernel/softirq.c:496 [inline]
                      __irq_exit_rcu+0xca/0x220 kernel/softirq.c:735
                      irq_exit_rcu+0x9/0x30 kernel/softirq.c:752
                      instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1061 [inline]
                      sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1061
                      asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
                      native_safe_halt arch/x86/include/asm/irqflags.h:48 [inline]
                      pv_native_safe_halt+0xf/0x20 arch/x86/kernel/paravirt.c:62
                      arch_safe_halt arch/x86/kernel/process.c:766 [inline]
                      default_idle+0x9/0x20 arch/x86/kernel/process.c:767
                      default_idle_call+0x72/0xb0 kernel/sched/idle.c:122
                      cpuidle_idle_call kernel/sched/idle.c:199 [inline]
                      do_idle+0x36a/0x5f0 kernel/sched/idle.c:352
                      cpu_startup_entry+0x43/0x60 kernel/sched/idle.c:451
                      start_secondary+0x101/0x110 arch/x86/kernel/smpboot.c:312
                      common_startup_64+0x13e/0x147
    IN-SOFTIRQ-R at:
                      lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                      __raw_read_lock_bh include/linux/rwlock_api_smp.h:192 [inline]
                      _raw_read_lock_bh+0x3e/0x50 kernel/locking/spinlock.c:256
                      ipv6_get_lladdr+0x15d/0x3f0 net/ipv6/addrconf.c:1940
                      addrconf_rs_timer+0x337/0x6d0 net/ipv6/addrconf.c:4048
                      call_timer_fn+0x192/0x5e0 kernel/time/timer.c:1748
                      expire_timers kernel/time/timer.c:1799 [inline]
                      __run_timers kernel/time/timer.c:2374 [inline]
                      __run_timer_base+0x652/0x8b0 kernel/time/timer.c:2386
                      run_timer_base kernel/time/timer.c:2395 [inline]
                      run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2405
                      handle_softirqs+0x22a/0x840 kernel/softirq.c:622
                      __do_softirq kernel/softirq.c:656 [inline]
                      invoke_softirq kernel/softirq.c:496 [inline]
                      __irq_exit_rcu+0xca/0x220 kernel/softirq.c:735
                      irq_exit_rcu+0x9/0x30 kernel/softirq.c:752
                      instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1061 [inline]
                      sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1061
                      asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
                      native_safe_halt arch/x86/include/asm/irqflags.h:48 [inline]
                      pv_native_safe_halt+0xf/0x20 arch/x86/kernel/paravirt.c:62
                      arch_safe_halt arch/x86/kernel/process.c:766 [inline]
                      default_idle+0x9/0x20 arch/x86/kernel/process.c:767
                      default_idle_call+0x72/0xb0 kernel/sched/idle.c:122
                      cpuidle_idle_call kernel/sched/idle.c:199 [inline]
                      do_idle+0x36a/0x5f0 kernel/sched/idle.c:352
                      cpu_startup_entry+0x43/0x60 kernel/sched/idle.c:451
                      start_secondary+0x101/0x110 arch/x86/kernel/smpboot.c:312
                      common_startup_64+0x13e/0x147
    INITIAL USE at:
                     lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                     __raw_write_lock_bh include/linux/rwlock_api_smp.h:221 [inline]
                     _raw_write_lock_bh+0x36/0x50 kernel/locking/spinlock.c:338
                     addrconf_permanent_addr+0x16a/0xa20 net/ipv6/addrconf.c:3627
                     addrconf_notify+0x864/0x1050 net/ipv6/addrconf.c:3706
                     notifier_call_chain+0x1ad/0x3d0 kernel/notifier.c:85
                     call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
                     call_netdevice_notifiers net/core/dev.c:2301 [inline]
                     __dev_notify_flags+0x1a9/0x310 net/core/dev.c:9797
                     netif_change_flags+0xe8/0x1a0 net/core/dev.c:9826
                     dev_change_flags+0x130/0x270 net/core/dev_api.c:68
                     devinet_ioctl+0x9f2/0x1b30 net/ipv4/devinet.c:1199
                     inet_ioctl+0x42a/0x560 net/ipv4/af_inet.c:1011
                     sock_do_ioctl+0x101/0x320 net/socket.c:1313
                     sock_ioctl+0x5c6/0x7f0 net/socket.c:1434
                     vfs_ioctl fs/ioctl.c:51 [inline]
                     __do_sys_ioctl fs/ioctl.c:597 [inline]
                     __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
                     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
                     do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
                     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    INITIAL READ USE at:
                          lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                          __raw_read_lock_bh include/linux/rwlock_api_smp.h:192 [inline]
                          _raw_read_lock_bh+0x3e/0x50 kernel/locking/spinlock.c:256
                          inet6_fill_ifla6_attrs+0x1117/0x25e0 net/ipv6/addrconf.c:5858
                          inet6_fill_link_af+0x9b/0x120 net/ipv6/addrconf.c:5893
                          rtnl_fill_link_af+0x1c8/0x440 net/core/rtnetlink.c:1919
                          rtnl_fill_ifinfo+0x1e08/0x20f0 net/core/rtnetlink.c:2190
                          rtmsg_ifinfo_build_skb+0x17d/0x260 net/core/rtnetlink.c:4454
                          rtmsg_ifinfo_event net/core/rtnetlink.c:4487 [inline]
                          rtmsg_ifinfo+0x8c/0x1a0 net/core/rtnetlink.c:4496
                          register_netdevice+0x1aca/0x1ec0 net/core/dev.c:11475
                          register_netdev+0x40/0x60 net/core/dev.c:11539
                          vti6_init_net+0x238/0x370 net/ipv6/ip6_vti.c:1167
                          ops_init+0x35c/0x5c0 net/core/net_namespace.c:137
                          __register_pernet_operations net/core/net_namespace.c:1318 [inline]
                          register_pernet_operations+0x343/0x830 net/core/net_namespace.c:1395
                          register_pernet_device+0x2a/0x80 net/core/net_namespace.c:1482
                          vti6_tunnel_init+0x13/0x170 net/ipv6/ip6_vti.c:1251
                          do_one_initcall+0x250/0x870 init/main.c:1392
                          do_initcall_level+0x104/0x190 init/main.c:1454
                          do_initcalls+0x59/0xa0 init/main.c:1470
                          kernel_init_freeable+0x2a6/0x3e0 init/main.c:1703
                          kernel_init+0x1d/0x1d0 init/main.c:1593
                          ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
                          ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
  }
  ... key      at: [<ffffffff9a982fe0>] ipv6_add_dev.__key+0x0/0x20
  ... acquired at:
   __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
   _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
   spin_lock include/linux/spinlock.h:342 [inline]
   ipv6_add_acaddr_hash net/ipv6/anycast.c:246 [inline]
   __ipv6_dev_ac_inc+0x6c8/0xb10 net/ipv6/anycast.c:374
   ipv6_sock_ac_join+0x6a8/0x880 net/ipv6/anycast.c:153
   do_ipv6_setsockopt+0x203a/0x3150 net/ipv6/ipv6_sockglue.c:893
   ipv6_setsockopt+0x59/0x170 net/ipv6/ipv6_sockglue.c:965
   do_sock_setsockopt+0x17c/0x1b0 net/socket.c:2381
   __sys_setsockopt net/socket.c:2406 [inline]
   __do_sys_setsockopt net/socket.c:2412 [inline]
   __se_sys_setsockopt net/socket.c:2409 [inline]
   __x64_sys_setsockopt+0x13d/0x1b0 net/socket.c:2409
   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
   do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> (acaddr_hash_lock){+.+.}-{3:3} {
   HARDIRQ-ON-W at:
                    lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                    __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
                    _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
                    spin_lock include/linux/spinlock.h:342 [inline]
                    ipv6_add_acaddr_hash net/ipv6/anycast.c:246 [inline]
                    __ipv6_dev_ac_inc+0x6c8/0xb10 net/ipv6/anycast.c:374
                    ipv6_sock_ac_join+0x6a8/0x880 net/ipv6/anycast.c:153
                    do_ipv6_setsockopt+0x203a/0x3150 net/ipv6/ipv6_sockglue.c:893
                    ipv6_setsockopt+0x59/0x170 net/ipv6/ipv6_sockglue.c:965
                    do_sock_setsockopt+0x17c/0x1b0 net/socket.c:2381
                    __sys_setsockopt net/socket.c:2406 [inline]
                    __do_sys_setsockopt net/socket.c:2412 [inline]
                    __se_sys_setsockopt net/socket.c:2409 [inline]
                    __x64_sys_setsockopt+0x13d/0x1b0 net/socket.c:2409
                    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
                    do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   SOFTIRQ-ON-W at:
                    lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                    __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
                    _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
                    spin_lock include/linux/spinlock.h:342 [inline]
                    ipv6_del_acaddr_hash net/ipv6/anycast.c:253 [inline]
                    __ipv6_dev_ac_dec+0x459/0x690 net/ipv6/anycast.c:419
                    ipv6_dev_ac_dec net/ipv6/anycast.c:438 [inline]
                    __ipv6_sock_ac_close+0x24e/0x430 net/ipv6/anycast.c:224
                    inet6_release+0x4f/0x70 net/ipv6/af_inet6.c:470
                    __sock_release net/socket.c:722 [inline]
                    sock_close+0xc3/0x240 net/socket.c:1514
                    __fput+0x44f/0xa60 fs/file_table.c:510
                    task_work_run+0x1d9/0x270 kernel/task_work.c:233
                    resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
                    __exit_to_user_mode_loop kernel/entry/common.c:67 [inline]
                    exit_to_user_mode_loop+0xf3/0x4d0 kernel/entry/common.c:98
                    __exit_to_user_mode_prepare include/linux/irq-entry-common.h:207 [inline]
                    syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:230 [inline]
                    syscall_exit_to_user_mode include/linux/entry-common.h:318 [inline]
                    do_syscall_64+0x33e/0x560 arch/x86/entry/syscall_64.c:100
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL USE at:
                   lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                   __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
                   _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
                   spin_lock include/linux/spinlock.h:342 [inline]
                   ipv6_add_acaddr_hash net/ipv6/anycast.c:246 [inline]
                   __ipv6_dev_ac_inc+0x6c8/0xb10 net/ipv6/anycast.c:374
                   ipv6_sock_ac_join+0x6a8/0x880 net/ipv6/anycast.c:153
                   do_ipv6_setsockopt+0x203a/0x3150 net/ipv6/ipv6_sockglue.c:893
                   ipv6_setsockopt+0x59/0x170 net/ipv6/ipv6_sockglue.c:965
                   do_sock_setsockopt+0x17c/0x1b0 net/socket.c:2381
                   __sys_setsockopt net/socket.c:2406 [inline]
                   __do_sys_setsockopt net/socket.c:2412 [inline]
                   __se_sys_setsockopt net/socket.c:2409 [inline]
                   __x64_sys_setsockopt+0x13d/0x1b0 net/socket.c:2409
                   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
                   do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
                   entry_SYSCALL_64_after_hwframe+0x77/0x7f
 }
 ... key      at: [<ffffffff8fef3d98>] acaddr_hash_lock+0x18/0x60 anycast.c:-1
 ... acquired at:
   mark_lock+0x115/0x190 kernel/locking/lockdep.c:4753
   mark_usage kernel/locking/lockdep.c:-1 [inline]
   __lock_acquire+0x9f9/0x2cf0 kernel/locking/lockdep.c:5191
   lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
   __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
   _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
   spin_lock include/linux/spinlock.h:342 [inline]
   ipv6_del_acaddr_hash net/ipv6/anycast.c:253 [inline]
   __ipv6_dev_ac_dec+0x459/0x690 net/ipv6/anycast.c:419
   ipv6_dev_ac_dec net/ipv6/anycast.c:438 [inline]
   __ipv6_sock_ac_close+0x24e/0x430 net/ipv6/anycast.c:224
   inet6_release+0x4f/0x70 net/ipv6/af_inet6.c:470
   __sock_release net/socket.c:722 [inline]
   sock_close+0xc3/0x240 net/socket.c:1514
   __fput+0x44f/0xa60 fs/file_table.c:510
   task_work_run+0x1d9/0x270 kernel/task_work.c:233
   resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
   __exit_to_user_mode_loop kernel/entry/common.c:67 [inline]
   exit_to_user_mode_loop+0xf3/0x4d0 kernel/entry/common.c:98
   __exit_to_user_mode_prepare include/linux/irq-entry-common.h:207 [inline]
   syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:230 [inline]
   syscall_exit_to_user_mode include/linux/entry-common.h:318 [inline]
   do_syscall_64+0x33e/0x560 arch/x86/entry/syscall_64.c:100
   entry_SYSCALL_64_after_hwframe+0x77/0x7f


stack backtrace:
CPU: 1 UID: 0 PID: 5872 Comm: syz.2.19 Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 print_irq_inversion_bug+0x1d2/0x1e0 kernel/locking/lockdep.c:4125
 mark_lock_irq+0x3d2/0x420 kernel/locking/lockdep.c:-1
 mark_lock+0x115/0x190 kernel/locking/lockdep.c:4753
 mark_usage kernel/locking/lockdep.c:-1 [inline]
 __lock_acquire+0x9f9/0x2cf0 kernel/locking/lockdep.c:5191
 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
 __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
 _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
 spin_lock include/linux/spinlock.h:342 [inline]
 ipv6_del_acaddr_hash net/ipv6/anycast.c:253 [inline]
 __ipv6_dev_ac_dec+0x459/0x690 net/ipv6/anycast.c:419
 ipv6_dev_ac_dec net/ipv6/anycast.c:438 [inline]
 __ipv6_sock_ac_close+0x24e/0x430 net/ipv6/anycast.c:224
 inet6_release+0x4f/0x70 net/ipv6/af_inet6.c:470
 __sock_release net/socket.c:722 [inline]
 sock_close+0xc3/0x240 net/socket.c:1514
 __fput+0x44f/0xa60 fs/file_table.c:510
 task_work_run+0x1d9/0x270 kernel/task_work.c:233
 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
 __exit_to_user_mode_loop kernel/entry/common.c:67 [inline]
 exit_to_user_mode_loop+0xf3/0x4d0 kernel/entry/common.c:98
 __exit_to_user_mode_prepare include/linux/irq-entry-common.h:207 [inline]
 syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:230 [inline]
 syscall_exit_to_user_mode include/linux/entry-common.h:318 [inline]
 do_syscall_64+0x33e/0x560 arch/x86/entry/syscall_64.c:100
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f2cd559ce59
Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 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 e8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffe5c3cd978 EFLAGS: 00000246 ORIG_RAX: 00000000000001b4
RAX: 0000000000000000 RBX: 00007ffe5c3cda60 RCX: 00007f2cd559ce59
RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000003
RBP: 000000000000fd56 R08: 0000000000000001 R09: 0000000000000000
R10: 0000001b32c20000 R11: 0000000000000246 R12: 00007ffe5c3cdaa0
R13: 00007f2cd5815fac R14: 000000000000fd8b R15: 00007f2cd5815fa0
 </TASK>


***

possible deadlock in addrconf_rs_timer

tree:      net
URL:       https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git
base:      ab4ac5a93b1b76aa6b12cadcba30450868d21a6f
arch:      amd64
compiler:  Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
config:    https://ci.syzbot.org/builds/9ba0a1a3-43c2-4334-8f26-942c72690313/config
syz repro: https://ci.syzbot.org/findings/e48c441f-1967-4acb-8d02-6ec4625160de/syz_repro

========================================================
WARNING: possible irq lock inversion dependency detected
syzkaller #0 Not tainted
--------------------------------------------------------
syz-executor/5739 just changed the state of lock:
ffff888114e00578 (&ndev->lock){++-.}-{3:3}, at: addrconf_rs_timer+0xc8/0x6d0 net/ipv6/addrconf.c:4033
but this lock took another, SOFTIRQ-unsafe lock in the past:
 (acaddr_hash_lock){+.+.}-{3:3}


and interrupts could create inverse lock ordering between them.


other info that might help us debug this:
 Possible interrupt unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(acaddr_hash_lock);
                               local_irq_disable();
                               lock(&ndev->lock);
                               lock(acaddr_hash_lock);
  <Interrupt>
    lock(&ndev->lock);

 *** DEADLOCK ***

2 locks held by syz-executor/5739:
 #0: ffff88816c92cce0 (&xt[i].mutex){+.+.}-{4:4}, at: xt_find_table_lock+0x51/0x3f0 net/netfilter/x_tables.c:1336
 #1: ffffc90000007cc0 ((&ndev->rs_timer)){+.-.}-{0:0}, at: call_timer_fn+0xd4/0x5e0 kernel/time/timer.c:1745

the shortest dependencies between 2nd lock and 1st lock:
 -> (acaddr_hash_lock){+.+.}-{3:3} {
    HARDIRQ-ON-W at:
                      lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                      __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
                      _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
                      spin_lock include/linux/spinlock.h:342 [inline]
                      ipv6_add_acaddr_hash net/ipv6/anycast.c:246 [inline]
                      __ipv6_dev_ac_inc+0x6c8/0xb10 net/ipv6/anycast.c:374
                      ipv6_sock_ac_join+0x6a8/0x880 net/ipv6/anycast.c:153
                      do_ipv6_setsockopt+0x203a/0x3150 net/ipv6/ipv6_sockglue.c:893
                      ipv6_setsockopt+0x59/0x170 net/ipv6/ipv6_sockglue.c:965
                      do_sock_setsockopt+0x17c/0x1b0 net/socket.c:2381
                      __sys_setsockopt net/socket.c:2406 [inline]
                      __do_sys_setsockopt net/socket.c:2412 [inline]
                      __se_sys_setsockopt net/socket.c:2409 [inline]
                      __x64_sys_setsockopt+0x13d/0x1b0 net/socket.c:2409
                      do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
                      do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
                      entry_SYSCALL_64_after_hwframe+0x77/0x7f
    SOFTIRQ-ON-W at:
                      lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                      __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
                      _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
                      spin_lock include/linux/spinlock.h:342 [inline]
                      ipv6_del_acaddr_hash net/ipv6/anycast.c:253 [inline]
                      __ipv6_dev_ac_dec+0x459/0x690 net/ipv6/anycast.c:419
                      ipv6_dev_ac_dec net/ipv6/anycast.c:438 [inline]
                      __ipv6_sock_ac_close+0x24e/0x430 net/ipv6/anycast.c:224
                      inet6_release+0x4f/0x70 net/ipv6/af_inet6.c:470
                      __sock_release net/socket.c:722 [inline]
                      sock_close+0xc3/0x240 net/socket.c:1514
                      __fput+0x44f/0xa60 fs/file_table.c:510
                      task_work_run+0x1d9/0x270 kernel/task_work.c:233
                      resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
                      __exit_to_user_mode_loop kernel/entry/common.c:67 [inline]
                      exit_to_user_mode_loop+0xf3/0x4d0 kernel/entry/common.c:98
                      __exit_to_user_mode_prepare include/linux/irq-entry-common.h:207 [inline]
                      syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:230 [inline]
                      syscall_exit_to_user_mode include/linux/entry-common.h:318 [inline]
                      do_syscall_64+0x33e/0x560 arch/x86/entry/syscall_64.c:100
                      entry_SYSCALL_64_after_hwframe+0x77/0x7f
    INITIAL USE at:
                     lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                     __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
                     _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
                     spin_lock include/linux/spinlock.h:342 [inline]
                     ipv6_add_acaddr_hash net/ipv6/anycast.c:246 [inline]
                     __ipv6_dev_ac_inc+0x6c8/0xb10 net/ipv6/anycast.c:374
                     ipv6_sock_ac_join+0x6a8/0x880 net/ipv6/anycast.c:153
                     do_ipv6_setsockopt+0x203a/0x3150 net/ipv6/ipv6_sockglue.c:893
                     ipv6_setsockopt+0x59/0x170 net/ipv6/ipv6_sockglue.c:965
                     do_sock_setsockopt+0x17c/0x1b0 net/socket.c:2381
                     __sys_setsockopt net/socket.c:2406 [inline]
                     __do_sys_setsockopt net/socket.c:2412 [inline]
                     __se_sys_setsockopt net/socket.c:2409 [inline]
                     __x64_sys_setsockopt+0x13d/0x1b0 net/socket.c:2409
                     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
                     do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
                     entry_SYSCALL_64_after_hwframe+0x77/0x7f
  }
  ... key      at: [<ffffffff8fef3d98>] acaddr_hash_lock+0x18/0x60 anycast.c:-1
  ... acquired at:
   __raw_spin_lock include/linux/spinlock_api_smp.h:158 [inline]
   _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:158
   spin_lock include/linux/spinlock.h:342 [inline]
   ipv6_add_acaddr_hash net/ipv6/anycast.c:246 [inline]
   __ipv6_dev_ac_inc+0x6c8/0xb10 net/ipv6/anycast.c:374
   ipv6_sock_ac_join+0x6a8/0x880 net/ipv6/anycast.c:153
   do_ipv6_setsockopt+0x203a/0x3150 net/ipv6/ipv6_sockglue.c:893
   ipv6_setsockopt+0x59/0x170 net/ipv6/ipv6_sockglue.c:965
   do_sock_setsockopt+0x17c/0x1b0 net/socket.c:2381
   __sys_setsockopt net/socket.c:2406 [inline]
   __do_sys_setsockopt net/socket.c:2412 [inline]
   __se_sys_setsockopt net/socket.c:2409 [inline]
   __x64_sys_setsockopt+0x13d/0x1b0 net/socket.c:2409
   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
   do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> (&ndev->lock){++-.}-{3:3} {
   HARDIRQ-ON-W at:
                    lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                    __raw_write_lock_bh include/linux/rwlock_api_smp.h:221 [inline]
                    _raw_write_lock_bh+0x36/0x50 kernel/locking/spinlock.c:338
                    addrconf_permanent_addr+0x16a/0xa20 net/ipv6/addrconf.c:3627
                    addrconf_notify+0x864/0x1050 net/ipv6/addrconf.c:3706
                    notifier_call_chain+0x1ad/0x3d0 kernel/notifier.c:85
                    call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
                    call_netdevice_notifiers net/core/dev.c:2301 [inline]
                    __dev_notify_flags+0x1a9/0x310 net/core/dev.c:9797
                    netif_change_flags+0xe8/0x1a0 net/core/dev.c:9826
                    dev_change_flags+0x130/0x270 net/core/dev_api.c:68
                    devinet_ioctl+0x9f2/0x1b30 net/ipv4/devinet.c:1199
                    inet_ioctl+0x42a/0x560 net/ipv4/af_inet.c:1011
                    sock_do_ioctl+0x101/0x320 net/socket.c:1313
                    sock_ioctl+0x5c6/0x7f0 net/socket.c:1434
                    vfs_ioctl fs/ioctl.c:51 [inline]
                    __do_sys_ioctl fs/ioctl.c:597 [inline]
                    __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
                    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
                    do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   HARDIRQ-ON-R at:
                    lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                    __raw_read_lock_bh include/linux/rwlock_api_smp.h:192 [inline]
                    _raw_read_lock_bh+0x3e/0x50 kernel/locking/spinlock.c:256
                    inet6_fill_ifla6_attrs+0x1117/0x25e0 net/ipv6/addrconf.c:5858
                    inet6_fill_link_af+0x9b/0x120 net/ipv6/addrconf.c:5893
                    rtnl_fill_link_af+0x1c8/0x440 net/core/rtnetlink.c:1919
                    rtnl_fill_ifinfo+0x1e08/0x20f0 net/core/rtnetlink.c:2190
                    rtmsg_ifinfo_build_skb+0x17d/0x260 net/core/rtnetlink.c:4454
                    rtmsg_ifinfo_event net/core/rtnetlink.c:4487 [inline]
                    rtmsg_ifinfo+0x8c/0x1a0 net/core/rtnetlink.c:4496
                    register_netdevice+0x1aca/0x1ec0 net/core/dev.c:11475
                    register_netdev+0x40/0x60 net/core/dev.c:11539
                    vti6_init_net+0x238/0x370 net/ipv6/ip6_vti.c:1167
                    ops_init+0x35c/0x5c0 net/core/net_namespace.c:137
                    __register_pernet_operations net/core/net_namespace.c:1318 [inline]
                    register_pernet_operations+0x343/0x830 net/core/net_namespace.c:1395
                    register_pernet_device+0x2a/0x80 net/core/net_namespace.c:1482
                    vti6_tunnel_init+0x13/0x170 net/ipv6/ip6_vti.c:1251
                    do_one_initcall+0x250/0x870 init/main.c:1392
                    do_initcall_level+0x104/0x190 init/main.c:1454
                    do_initcalls+0x59/0xa0 init/main.c:1470
                    kernel_init_freeable+0x2a6/0x3e0 init/main.c:1703
                    kernel_init+0x1d/0x1d0 init/main.c:1593
                    ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
                    ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
   IN-SOFTIRQ-W at:
                    lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                    __raw_write_lock include/linux/rwlock_api_smp.h:229 [inline]
                    _raw_write_lock+0x2e/0x40 kernel/locking/spinlock.c:304
                    addrconf_rs_timer+0xc8/0x6d0 net/ipv6/addrconf.c:4033
                    call_timer_fn+0x192/0x5e0 kernel/time/timer.c:1748
                    expire_timers kernel/time/timer.c:1799 [inline]
                    __run_timers kernel/time/timer.c:2374 [inline]
                    __run_timer_base+0x652/0x8b0 kernel/time/timer.c:2386
                    run_timer_base kernel/time/timer.c:2395 [inline]
                    run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2405
                    handle_softirqs+0x22a/0x840 kernel/softirq.c:622
                    __do_softirq kernel/softirq.c:656 [inline]
                    invoke_softirq kernel/softirq.c:496 [inline]
                    __irq_exit_rcu+0xca/0x220 kernel/softirq.c:735
                    irq_exit_rcu+0x9/0x30 kernel/softirq.c:752
                    instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1061 [inline]
                    sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1061
                    asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
                    zone_watermark_fast+0xf7/0x230 mm/page_alloc.c:3686
                    get_page_from_freelist+0x537/0x2610 mm/page_alloc.c:3885
                    __alloc_frozen_pages_noprof+0x18d/0x380 mm/page_alloc.c:5221
                    __alloc_pages_noprof+0x10/0x100 mm/page_alloc.c:5255
                    alloc_pages_bulk_noprof+0x5ff/0x7c0 mm/page_alloc.c:5175
                    alloc_pages_bulk_mempolicy_noprof+0x34e/0x1680 mm/mempolicy.c:2798
                    vm_area_alloc_pages mm/vmalloc.c:3700 [inline]
                    __vmalloc_area_node mm/vmalloc.c:3878 [inline]
                    __vmalloc_node_range_noprof+0xad1/0x1750 mm/vmalloc.c:4064
                    __vmalloc_node_noprof mm/vmalloc.c:4124 [inline]
                    vzalloc_noprof+0xb2/0xe0 mm/vmalloc.c:4202
                    alloc_counters+0x64/0x5d0 net/ipv4/netfilter/ip_tables.c:799
                    copy_entries_to_user net/ipv6/netfilter/ip6_tables.c:837 [inline]
                    get_entries net/ipv6/netfilter/ip6_tables.c:1039 [inline]
                    do_ip6t_get_ctl+0xabd/0x1230 net/ipv6/netfilter/ip6_tables.c:1677
                    nf_getsockopt+0x26e/0x290 net/netfilter/nf_sockopt.c:116
                    ipv6_getsockopt+0x1fd/0x2b0 net/ipv6/ipv6_sockglue.c:1464
                    do_sock_getsockopt+0x51d/0x7e0 net/socket.c:2487
                    __sys_getsockopt net/socket.c:2518 [inline]
                    __do_sys_getsockopt net/socket.c:2525 [inline]
                    __se_sys_getsockopt net/socket.c:2522 [inline]
                    __x64_sys_getsockopt+0x1a4/0x240 net/socket.c:2522
                    do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
                    do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
                    entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL USE at:
                   lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                   __raw_write_lock_bh include/linux/rwlock_api_smp.h:221 [inline]
                   _raw_write_lock_bh+0x36/0x50 kernel/locking/spinlock.c:338
                   addrconf_permanent_addr+0x16a/0xa20 net/ipv6/addrconf.c:3627
                   addrconf_notify+0x864/0x1050 net/ipv6/addrconf.c:3706
                   notifier_call_chain+0x1ad/0x3d0 kernel/notifier.c:85
                   call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
                   call_netdevice_notifiers net/core/dev.c:2301 [inline]
                   __dev_notify_flags+0x1a9/0x310 net/core/dev.c:9797
                   netif_change_flags+0xe8/0x1a0 net/core/dev.c:9826
                   dev_change_flags+0x130/0x270 net/core/dev_api.c:68
                   devinet_ioctl+0x9f2/0x1b30 net/ipv4/devinet.c:1199
                   inet_ioctl+0x42a/0x560 net/ipv4/af_inet.c:1011
                   sock_do_ioctl+0x101/0x320 net/socket.c:1313
                   sock_ioctl+0x5c6/0x7f0 net/socket.c:1434
                   vfs_ioctl fs/ioctl.c:51 [inline]
                   __do_sys_ioctl fs/ioctl.c:597 [inline]
                   __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:583
                   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
                   do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
                   entry_SYSCALL_64_after_hwframe+0x77/0x7f
   INITIAL READ USE at:
                        lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
                        __raw_read_lock_bh include/linux/rwlock_api_smp.h:192 [inline]
                        _raw_read_lock_bh+0x3e/0x50 kernel/locking/spinlock.c:256
                        inet6_fill_ifla6_attrs+0x1117/0x25e0 net/ipv6/addrconf.c:5858
                        inet6_fill_link_af+0x9b/0x120 net/ipv6/addrconf.c:5893
                        rtnl_fill_link_af+0x1c8/0x440 net/core/rtnetlink.c:1919
                        rtnl_fill_ifinfo+0x1e08/0x20f0 net/core/rtnetlink.c:2190
                        rtmsg_ifinfo_build_skb+0x17d/0x260 net/core/rtnetlink.c:4454
                        rtmsg_ifinfo_event net/core/rtnetlink.c:4487 [inline]
                        rtmsg_ifinfo+0x8c/0x1a0 net/core/rtnetlink.c:4496
                        register_netdevice+0x1aca/0x1ec0 net/core/dev.c:11475
                        register_netdev+0x40/0x60 net/core/dev.c:11539
                        vti6_init_net+0x238/0x370 net/ipv6/ip6_vti.c:1167
                        ops_init+0x35c/0x5c0 net/core/net_namespace.c:137
                        __register_pernet_operations net/core/net_namespace.c:1318 [inline]
                        register_pernet_operations+0x343/0x830 net/core/net_namespace.c:1395
                        register_pernet_device+0x2a/0x80 net/core/net_namespace.c:1482
                        vti6_tunnel_init+0x13/0x170 net/ipv6/ip6_vti.c:1251
                        do_one_initcall+0x250/0x870 init/main.c:1392
                        do_initcall_level+0x104/0x190 init/main.c:1454
                        do_initcalls+0x59/0xa0 init/main.c:1470
                        kernel_init_freeable+0x2a6/0x3e0 init/main.c:1703
                        kernel_init+0x1d/0x1d0 init/main.c:1593
                        ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158
                        ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
 }
 ... key      at: [<ffffffff9a982fe0>] ipv6_add_dev.__key+0x0/0x20
 ... acquired at:
   mark_lock+0x115/0x190 kernel/locking/lockdep.c:4753
   mark_usage kernel/locking/lockdep.c:-1 [inline]
   __lock_acquire+0x689/0x2cf0 kernel/locking/lockdep.c:5191
   lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
   __raw_write_lock include/linux/rwlock_api_smp.h:229 [inline]
   _raw_write_lock+0x2e/0x40 kernel/locking/spinlock.c:304
   addrconf_rs_timer+0xc8/0x6d0 net/ipv6/addrconf.c:4033
   call_timer_fn+0x192/0x5e0 kernel/time/timer.c:1748
   expire_timers kernel/time/timer.c:1799 [inline]
   __run_timers kernel/time/timer.c:2374 [inline]
   __run_timer_base+0x652/0x8b0 kernel/time/timer.c:2386
   run_timer_base kernel/time/timer.c:2395 [inline]
   run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2405
   handle_softirqs+0x22a/0x840 kernel/softirq.c:622
   __do_softirq kernel/softirq.c:656 [inline]
   invoke_softirq kernel/softirq.c:496 [inline]
   __irq_exit_rcu+0xca/0x220 kernel/softirq.c:735
   irq_exit_rcu+0x9/0x30 kernel/softirq.c:752
   instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1061 [inline]
   sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1061
   asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
   zone_watermark_fast+0xf7/0x230 mm/page_alloc.c:3686
   get_page_from_freelist+0x537/0x2610 mm/page_alloc.c:3885
   __alloc_frozen_pages_noprof+0x18d/0x380 mm/page_alloc.c:5221
   __alloc_pages_noprof+0x10/0x100 mm/page_alloc.c:5255
   alloc_pages_bulk_noprof+0x5ff/0x7c0 mm/page_alloc.c:5175
   alloc_pages_bulk_mempolicy_noprof+0x34e/0x1680 mm/mempolicy.c:2798
   vm_area_alloc_pages mm/vmalloc.c:3700 [inline]
   __vmalloc_area_node mm/vmalloc.c:3878 [inline]
   __vmalloc_node_range_noprof+0xad1/0x1750 mm/vmalloc.c:4064
   __vmalloc_node_noprof mm/vmalloc.c:4124 [inline]
   vzalloc_noprof+0xb2/0xe0 mm/vmalloc.c:4202
   alloc_counters+0x64/0x5d0 net/ipv4/netfilter/ip_tables.c:799
   copy_entries_to_user net/ipv6/netfilter/ip6_tables.c:837 [inline]
   get_entries net/ipv6/netfilter/ip6_tables.c:1039 [inline]
   do_ip6t_get_ctl+0xabd/0x1230 net/ipv6/netfilter/ip6_tables.c:1677
   nf_getsockopt+0x26e/0x290 net/netfilter/nf_sockopt.c:116
   ipv6_getsockopt+0x1fd/0x2b0 net/ipv6/ipv6_sockglue.c:1464
   do_sock_getsockopt+0x51d/0x7e0 net/socket.c:2487
   __sys_getsockopt net/socket.c:2518 [inline]
   __do_sys_getsockopt net/socket.c:2525 [inline]
   __se_sys_getsockopt net/socket.c:2522 [inline]
   __x64_sys_getsockopt+0x1a4/0x240 net/socket.c:2522
   do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
   do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
   entry_SYSCALL_64_after_hwframe+0x77/0x7f


stack backtrace:
CPU: 0 UID: 0 PID: 5739 Comm: syz-executor Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Call Trace:
 <IRQ>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 print_irq_inversion_bug+0x1d2/0x1e0 kernel/locking/lockdep.c:4125
 mark_lock_irq+0x3d2/0x420 kernel/locking/lockdep.c:-1
 mark_lock+0x115/0x190 kernel/locking/lockdep.c:4753
 mark_usage kernel/locking/lockdep.c:-1 [inline]
 __lock_acquire+0x689/0x2cf0 kernel/locking/lockdep.c:5191
 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868
 __raw_write_lock include/linux/rwlock_api_smp.h:229 [inline]
 _raw_write_lock+0x2e/0x40 kernel/locking/spinlock.c:304
 addrconf_rs_timer+0xc8/0x6d0 net/ipv6/addrconf.c:4033
 call_timer_fn+0x192/0x5e0 kernel/time/timer.c:1748
 expire_timers kernel/time/timer.c:1799 [inline]
 __run_timers kernel/time/timer.c:2374 [inline]
 __run_timer_base+0x652/0x8b0 kernel/time/timer.c:2386
 run_timer_base kernel/time/timer.c:2395 [inline]
 run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2405
 handle_softirqs+0x22a/0x840 kernel/softirq.c:622
 __do_softirq kernel/softirq.c:656 [inline]
 invoke_softirq kernel/softirq.c:496 [inline]
 __irq_exit_rcu+0xca/0x220 kernel/softirq.c:735
 irq_exit_rcu+0x9/0x30 kernel/softirq.c:752
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1061 [inline]
 sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1061
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
RIP: 0010:zone_watermark_fast+0xf7/0x230 mm/page_alloc.c:3687
Code: 00 00 fc ff df 80 3c 08 00 74 08 48 89 ef e8 d0 01 0e 00 48 8b 45 00 31 c9 48 85 c0 48 0f 4f c8 49 01 cd 4c 39 eb 4c 0f 4c eb <49> 8d 46 38 48 63 2c 24 83 fd 05 0f 83 08 01 00 00 49 89 df 4d 29
RSP: 0018:ffffc900045cf018 EFLAGS: 00000202
RAX: 0000000000000000 RBX: 0000000000001a43 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff88815fffc810
RBP: ffff88815fffc810 R08: ffff88815fffc817 R09: 1ffff1102bfff902
R10: dffffc0000000000 R11: ffffed102bfff903 R12: 0000000000000000
R13: 0000000000000000 R14: ffff88815fffc100 R15: 0000000000000901
 get_page_from_freelist+0x537/0x2610 mm/page_alloc.c:3885
 __alloc_frozen_pages_noprof+0x18d/0x380 mm/page_alloc.c:5221
 __alloc_pages_noprof+0x10/0x100 mm/page_alloc.c:5255
 alloc_pages_bulk_noprof+0x5ff/0x7c0 mm/page_alloc.c:5175
 alloc_pages_bulk_mempolicy_noprof+0x34e/0x1680 mm/mempolicy.c:2798
 vm_area_alloc_pages mm/vmalloc.c:3700 [inline]
 __vmalloc_area_node mm/vmalloc.c:3878 [inline]
 __vmalloc_node_range_noprof+0xad1/0x1750 mm/vmalloc.c:4064
 __vmalloc_node_noprof mm/vmalloc.c:4124 [inline]
 vzalloc_noprof+0xb2/0xe0 mm/vmalloc.c:4202
 alloc_counters+0x64/0x5d0 net/ipv4/netfilter/ip_tables.c:799
 copy_entries_to_user net/ipv6/netfilter/ip6_tables.c:837 [inline]
 get_entries net/ipv6/netfilter/ip6_tables.c:1039 [inline]
 do_ip6t_get_ctl+0xabd/0x1230 net/ipv6/netfilter/ip6_tables.c:1677
 nf_getsockopt+0x26e/0x290 net/netfilter/nf_sockopt.c:116
 ipv6_getsockopt+0x1fd/0x2b0 net/ipv6/ipv6_sockglue.c:1464
 do_sock_getsockopt+0x51d/0x7e0 net/socket.c:2487
 __sys_getsockopt net/socket.c:2518 [inline]
 __do_sys_getsockopt net/socket.c:2525 [inline]
 __se_sys_getsockopt net/socket.c:2522 [inline]
 __x64_sys_getsockopt+0x1a4/0x240 net/socket.c:2522
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x15f/0x560 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fb03e19e62a
Code: 48 83 ec 10 89 d2 48 63 ff 45 31 c9 6a 2a 45 31 c0 31 c9 e8 d8 99 fb ff 48 83 c4 18 c3 0f 1f 00 49 89 ca b8 37 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 06 c3 0f 1f 44 00 00 48 c7 c2 e8 ff ff ff f7
RSP: 002b:00007ffc25639248 EFLAGS: 00000212 ORIG_RAX: 0000000000000037
RAX: ffffffffffffffda RBX: 00007ffc256392d0 RCX: 00007fb03e19e62a
RDX: 0000000000000041 RSI: 0000000000000029 RDI: 0000000000000003
RBP: 0000000000000003 R08: 00007ffc2563926c R09: ffffffffff000000
R10: 00007ffc256392d0 R11: 0000000000000212 R12: 00007fb03e3ea240
R13: 00007ffc2563926c R14: 0000000000000000 R15: 00007fb03e3eafc0
 </TASK>
----------------
Code disassembly (best guess), 4 bytes skipped:
   0:	df 80 3c 08 00 74    	filds  0x7400083c(%rax)
   6:	08 48 89             	or     %cl,-0x77(%rax)
   9:	ef                   	out    %eax,(%dx)
   a:	e8 d0 01 0e 00       	call   0xe01df
   f:	48 8b 45 00          	mov    0x0(%rbp),%rax
  13:	31 c9                	xor    %ecx,%ecx
  15:	48 85 c0             	test   %rax,%rax
  18:	48 0f 4f c8          	cmovg  %rax,%rcx
  1c:	49 01 cd             	add    %rcx,%r13
  1f:	4c 39 eb             	cmp    %r13,%rbx
  22:	4c 0f 4c eb          	cmovl  %rbx,%r13
* 26:	49 8d 46 38          	lea    0x38(%r14),%rax <-- trapping instruction
  2a:	48 63 2c 24          	movslq (%rsp),%rbp
  2e:	83 fd 05             	cmp    $0x5,%ebp
  31:	0f 83 08 01 00 00    	jae    0x13f
  37:	49 89 df             	mov    %rbx,%r15
  3a:	4d                   	rex.WRB
  3b:	29                   	.byte 0x29


***

If these findings have caused you to resend the series or submit a
separate fix, please add the following tag to your commit message:
  Tested-by: syzbot@syzkaller.appspotmail.com

---
This report is generated by a bot. It may contain errors.
syzbot ci engineers can be reached at syzkaller@googlegroups.com.

To test a patch for this bug, please reply with `#syz test`
(should be on a separate line).

The patch should be attached to the email.
Note: arguments like custom git repos and branches are not supported.

      parent reply	other threads:[~2026-05-29  8:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-29  3:20 [PATCH net] ipv6: anycast: insert aca into global hash under idev->lock Jiayuan Chen
2026-05-29  3:41 ` Kuniyuki Iwashima
2026-05-29  5:02   ` Jiayuan Chen
2026-05-29  5:10     ` Kuniyuki Iwashima
2026-05-29  5:12       ` Jiayuan Chen
2026-05-29  8:31 ` syzbot ci [this message]

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=6a194ef7.ba3b1513.1890b4.0000.GAE@google.com \
    --to=syzbot+cieee6b6974f07e792@syzkaller.appspotmail.com \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=idosch@nvidia.com \
    --cc=jiayuan.chen@linux.dev \
    --cc=kuba@kernel.org \
    --cc=kuniyu@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=syzbot@lists.linux.dev \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox