mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
@ 2026-05-10 20:18 syzbot
  2026-05-14  1:51 ` Forwarded: [syzbot] test patch for unregister_netdevice syzbot
                   ` (9 more replies)
  0 siblings, 10 replies; 20+ messages in thread
From: syzbot @ 2026-05-10 20:18 UTC (permalink / raw)
  To: davem, dsahern, edumazet, horms, kuba, linux-kernel, netdev,
	pabeni, syzkaller-bugs

Hello,

syzbot found the following issue on:

HEAD commit:    5cbb61bf4168 arm64/fpsimd: ptrace: zero target's fpsimd_st..
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=142f40ec580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=a834c6344141a58b
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
userspace arch: arm64
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=103f3dba580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/04156ec16593/disk-5cbb61bf.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/6bfa041e2c79/vmlinux-5cbb61bf.xz
kernel image: https://storage.googleapis.com/syzbot-assets/a92d82d8a79e/Image-5cbb61bf.gz.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/7915d7230a1d/mount_6.gz
  fsck result: failed (log: https://syzkaller.appspot.com/x/fsck.log?x=15005a73980000)

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

unregister_netdevice: waiting for netdevsim1 to become free. Usage count = 2
ref_tracker: netdev@00000000f11a2c54 has 1/1 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4471 [inline]
     netdev_tracker_alloc include/linux/netdevice.h:4483 [inline]
     netdev_get_by_index+0x88/0xe0 net/core/dev.c:1027
     fib6_nh_init+0x258/0x14bc net/ipv6/route.c:3606
     ip6_route_info_create_nh+0x120/0x9a8 net/ipv6/route.c:3905
     addrconf_f6i_alloc+0x1e4/0x3b4 net/ipv6/route.c:4697
     ipv6_add_addr+0x458/0xd70 net/ipv6/addrconf.c:1126
     addrconf_add_linklocal+0x1e0/0x378 net/ipv6/addrconf.c:3311
     addrconf_addr_gen+0x27c/0x2e0 net/ipv6/addrconf.c:-1
     addrconf_init_auto_addrs+0x390/0x764 net/ipv6/addrconf.c:-1
     addrconf_notify+0x7a0/0xbe4 net/ipv6/addrconf.c:3752
     notifier_call_chain+0x194/0x60c kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2249
     call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
     call_netdevice_notifiers net/core/dev.c:2301 [inline]
     __dev_notify_flags+0x160/0x27c net/core/dev.c:9794
     netif_change_flags+0xd0/0x15c net/core/dev.c:9823
     do_setlink+0xab0/0x31c0 net/core/rtnetlink.c:3180
     rtnl_changelink net/core/rtnetlink.c:3799 [inline]
     __rtnl_newlink net/core/rtnetlink.c:3972 [inline]
     rtnl_newlink+0xd24/0x113c net/core/rtnetlink.c:4109

netdevsim netdevsim2 netdevsim0 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0


---
This report 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 issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Forwarded: [syzbot] test patch for unregister_netdevice
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
@ 2026-05-14  1:51 ` syzbot
  2026-05-14  2:08 ` Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices syzbot
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  1:51 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [syzbot] test patch for unregister_netdevice
Author: raoxu@uniontech.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 5476b6536eb7..a517e57cf86a 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3666,6 +3666,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		break;
 
 	case NETDEV_CHANGEMTU:
+		if (dev->reg_state == NETREG_UNREGISTERING)
+			break;
+
 		/* if MTU under IPV6_MIN_MTU stop IPv6 on this interface. */
 		if (dev->mtu < IPV6_MIN_MTU) {
 			addrconf_ifdown(dev, dev != net->loopback_dev);
@@ -3691,6 +3694,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		fallthrough;
 	case NETDEV_UP:
 	case NETDEV_CHANGE:
+		if (dev->reg_state == NETREG_UNREGISTERING)
+			break;
+
 		if (idev && idev->cnf.disable_ipv6)
 			break;

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
  2026-05-14  1:51 ` Forwarded: [syzbot] test patch for unregister_netdevice syzbot
@ 2026-05-14  2:08 ` syzbot
  2026-05-14  2:36 ` syzbot
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  2:08 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices
Author: raoxu@uniontech.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main

From: Xu Rao <raoxu@uniontech.com>
Date: Tue, 12 May 2026 20:44:10 +0800
Subject: [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices

syzbot reports that unregister_netdevice() can wait forever for a
netdevsim device whose reference count never drops to zero.

The leaked reference is held by an IPv6 local route created from
addrconf.  A late NETDEV_CHANGE notification can still reach
addrconf_notify() after the device has entered NETREG_UNREGISTERING.
The handler can then run automatic address configuration, add a
link-local address and install its host route after unregister teardown
has already started.  The route nexthop takes a netdev reference in
fib6_nh_init(), and there might not be a later ifdown pass to remove
the newly created address and route.

Do not run MTU, UP or CHANGE based IPv6 autoconfiguration once the
device is unregistering.  Keep NETDEV_DOWN and NETDEV_UNREGISTER
handling unchanged so the teardown path can still remove existing IPv6
state.

Reported-by: syzbot+e2af46126e0644cbebdd@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
Signed-off-by: Xu Rao <raoxu@uniontech.com>
---
v2:
- Drop READ_ONCE() around dev->reg_state.  addrconf_notify() is called
  from the netdevice notifier path, so a plain load is sufficient.
- Do not add a Fixes tag.  The issue does not appear to be caused by a
  single commit, but by a long-standing unregister-time lifecycle gap.

 net/ipv6/addrconf.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 5476b6536eb7..a517e57cf86a 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3666,6 +3666,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		break;

 	case NETDEV_CHANGEMTU:
+		if (dev->reg_state == NETREG_UNREGISTERING)
+			break;
+
 		/* if MTU under IPV6_MIN_MTU stop IPv6 on this interface. */
 		if (dev->mtu < IPV6_MIN_MTU) {
 			addrconf_ifdown(dev, dev != net->loopback_dev);
@@ -3691,6 +3694,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		fallthrough;
 	case NETDEV_UP:
 	case NETDEV_CHANGE:
+		if (dev->reg_state == NETREG_UNREGISTERING)
+			break;
+
 		if (idev && idev->cnf.disable_ipv6)
 			break;

--
2.50.1

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
  2026-05-14  1:51 ` Forwarded: [syzbot] test patch for unregister_netdevice syzbot
  2026-05-14  2:08 ` Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices syzbot
@ 2026-05-14  2:36 ` syzbot
  2026-05-14  4:02 ` syzbot
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  2:36 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices
Author: raoxu@uniontech.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
                   ` (2 preceding siblings ...)
  2026-05-14  2:36 ` syzbot
@ 2026-05-14  4:02 ` syzbot
  2026-05-14  6:48 ` Forwarded: [syzbot] test net main baseline syzbot
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  4:02 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices
Author: raoxu@uniontech.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main

From: Xu Rao <raoxu@uniontech.com>
Subject: [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices

syzbot reports that unregister_netdevice() can wait forever for a
netdevsim device whose reference count never drops to zero.

The leaked reference is held by an IPv6 local route created from
addrconf.  A late NETDEV_CHANGE notification can still reach
addrconf_notify() after the device has entered NETREG_UNREGISTERING.
The handler can then run automatic address configuration, add a
link-local address and install its host route after unregister teardown
has already started.  The route nexthop takes a netdev reference in
fib6_nh_init(), and there might not be a later ifdown pass to remove
the newly created address and route.

Do not run MTU, UP or CHANGE based IPv6 autoconfiguration once the
device is unregistering.  Keep NETDEV_DOWN and NETDEV_UNREGISTER
handling unchanged so the teardown path can still remove existing IPv6
state.

Reported-by: syzbot+e2af46126e0644cbebdd@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
Signed-off-by: Xu Rao <raoxu@uniontech.com>
---
v2:
- Drop READ_ONCE() around dev->reg_state.  addrconf_notify() is called
  from the netdevice notifier path, so a plain load is sufficient.
- Do not add a Fixes tag.  The issue does not appear to be caused by a
  single commit, but by a long-standing unregister-time lifecycle gap.

 net/ipv6/addrconf.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 5476b6536eb7..a517e57cf86a 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3666,6 +3666,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		break;

 	case NETDEV_CHANGEMTU:
+		if (dev->reg_state == NETREG_UNREGISTERING)
+			break;
+
 		/* if MTU under IPV6_MIN_MTU stop IPv6 on this interface. */
 		if (dev->mtu < IPV6_MIN_MTU) {
 			addrconf_ifdown(dev, dev != net->loopback_dev);
@@ -3691,12 +3694,15 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		fallthrough;
 	case NETDEV_UP:
 	case NETDEV_CHANGE:
+		if (dev->reg_state == NETREG_UNREGISTERING)
+			break;
+
 		if (idev && idev->cnf.disable_ipv6)
 			break;

 		if (dev->priv_flags & IFF_NO_ADDRCONF) {
 			if (event == NETDEV_UP && !IS_ERR_OR_NULL(idev) &&
 			    dev->flags & IFF_UP && dev->flags & IFF_MULTICAST)
 				ipv6_mc_up(idev);
 			break;
 		}
--
2.50.1

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Forwarded: [syzbot] test net main baseline
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
                   ` (3 preceding siblings ...)
  2026-05-14  4:02 ` syzbot
@ 2026-05-14  6:48 ` syzbot
  2026-05-14  8:24 ` Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices syzbot
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  6:48 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [syzbot] test net main baseline
Author: raoxu@uniontech.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
                   ` (4 preceding siblings ...)
  2026-05-14  6:48 ` Forwarded: [syzbot] test net main baseline syzbot
@ 2026-05-14  8:24 ` syzbot
  2026-05-14 11:12 ` Forwarded: [syzbot] test WARN_ON for addrconf " syzbot
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  8:24 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices
Author: raoxu@uniontech.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci

From: Xu Rao <raoxu@uniontech.com>
Subject: [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices

syzbot reports that unregister_netdevice() can wait forever for a
netdevsim device whose reference count never drops to zero.

The leaked reference is held by an IPv6 local route created from
addrconf.  A late NETDEV_CHANGE notification can still reach
addrconf_notify() after the device has entered NETREG_UNREGISTERING.
The handler can then run automatic address configuration, add a
link-local address and install its host route after unregister teardown
has already started.  The route nexthop takes a netdev reference in
fib6_nh_init(), and there might not be a later ifdown pass to remove
the newly created address and route.

Do not run MTU, UP or CHANGE based IPv6 autoconfiguration once the
device is unregistering.  Keep NETDEV_DOWN and NETDEV_UNREGISTER
handling unchanged so the teardown path can still remove existing IPv6
state.

Reported-by: syzbot+e2af46126e0644cbebdd@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
Signed-off-by: Xu Rao <raoxu@uniontech.com>
---
v2:
- Drop READ_ONCE() around dev->reg_state.  addrconf_notify() is called
  from the netdevice notifier path, so a plain load is sufficient.
- Do not add a Fixes tag.  The issue does not appear to be caused by a
  single commit, but by a long-standing unregister-time lifecycle gap.

 net/ipv6/addrconf.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 5476b6536eb7..a517e57cf86a 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3666,6 +3666,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		break;

 	case NETDEV_CHANGEMTU:
+		if (dev->reg_state == NETREG_UNREGISTERING)
+			break;
+
 		/* if MTU under IPV6_MIN_MTU stop IPv6 on this interface. */
 		if (dev->mtu < IPV6_MIN_MTU) {
 			addrconf_ifdown(dev, dev != net->loopback_dev);
@@ -3691,12 +3694,15 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		fallthrough;
 	case NETDEV_UP:
 	case NETDEV_CHANGE:
+		if (dev->reg_state == NETREG_UNREGISTERING)
+			break;
+
 		if (idev && idev->cnf.disable_ipv6)
 			break;

 		if (dev->priv_flags & IFF_NO_ADDRCONF) {
 			if (event == NETDEV_UP && !IS_ERR_OR_NULL(idev) &&
 			    dev->flags & IFF_UP && dev->flags & IFF_MULTICAST)
 				ipv6_mc_up(idev);
 			break;
 		}
--
2.50.1

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Forwarded: [syzbot] test WARN_ON for addrconf on unregistering devices
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
                   ` (5 preceding siblings ...)
  2026-05-14  8:24 ` Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices syzbot
@ 2026-05-14 11:12 ` syzbot
  2026-05-14 11:58 ` Forwarded: [syzbot] test baseline for unregister_netdevice ref leak syzbot
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14 11:12 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [syzbot] test WARN_ON for addrconf on unregistering devices
Author: raoxu@uniontech.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci

From: Xu Rao <raoxu@uniontech.com>
Subject: [PATCH debug] ipv6: addrconf: warn on autoconf for unregistering devices

Add WARN_ON() checks where the proposed fix skips IPv6 autoconf on
unregistering devices.  This is a diagnostic patch to confirm whether
the syzbot reproducer reaches the MTU / UP / CHANGE paths after the
netdevice has entered NETREG_UNREGISTERING.

Signed-off-by: Xu Rao <raoxu@uniontech.com>
---
 net/ipv6/addrconf.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 5476b6536eb7..72a3b17d30a1 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3666,6 +3666,8 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		break;

 	case NETDEV_CHANGEMTU:
+		WARN_ON(dev->reg_state == NETREG_UNREGISTERING);
+
 		/* if MTU under IPV6_MIN_MTU stop IPv6 on this interface. */
 		if (dev->mtu < IPV6_MIN_MTU) {
 			addrconf_ifdown(dev, dev != net->loopback_dev);
@@ -3691,12 +3693,14 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event,
 		fallthrough;
 	case NETDEV_UP:
 	case NETDEV_CHANGE:
+		WARN_ON(dev->reg_state == NETREG_UNREGISTERING);
+
 		if (idev && idev->cnf.disable_ipv6)
 			break;

 		if (dev->priv_flags & IFF_NO_ADDRCONF) {
 			if (event == NETDEV_UP && !IS_ERR_OR_NULL(idev) &&
 			    dev->flags & IFF_UP && dev->flags & IFF_MULTICAST)
 				ipv6_mc_up(idev);
 			break;
 		}
--
2.50.1

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Forwarded: [syzbot] test baseline for unregister_netdevice ref leak
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
                   ` (6 preceding siblings ...)
  2026-05-14 11:12 ` Forwarded: [syzbot] test WARN_ON for addrconf " syzbot
@ 2026-05-14 11:58 ` syzbot
  2026-09-15 12:14 ` [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
  2026-09-15 12:29 ` Forwarded: " syzbot
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14 11:58 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: [syzbot] test baseline for unregister_netdevice ref leak
Author: raoxu@uniontech.com

#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
                   ` (7 preceding siblings ...)
  2026-05-14 11:58 ` Forwarded: [syzbot] test baseline for unregister_netdevice ref leak syzbot
@ 2026-09-15 12:14 ` syzbot
  2026-09-15 12:29 ` Forwarded: " syzbot
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-09-15 12:14 UTC (permalink / raw)
  To: davem, dsahern, edumazet, horms, idosch, kuba, kuniyu,
	linux-kernel, netdev, pabeni, penguin-kernel, raoxu,
	syzkaller-bugs, willemb

syzbot has found a reproducer for the following issue on:

HEAD commit:    5445d6419962 arm64: Don't read GMID_EL1 when MTE is disabled
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=1250428e580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=56ed23170c168d4c
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8
userspace arch: arm64
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=15b32471580000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=16d742d1580000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/e8b70e3bd109/disk-5445d641.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/e5227e56ac93/vmlinux-5445d641.xz
kernel image: https://storage.googleapis.com/syzbot-assets/54905f78be59/Image-5445d641.gz.xz

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

unregister_netdevice: waiting for netdevsim2 to become free. Usage count = 2
ref_tracker: netdev@000000004118ac35 has 1/1 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4528 [inline]
     netdev_tracker_alloc+0x68/0xb4 include/linux/netdevice.h:4540
     fib_create_info+0x15cc/0x2184 net/ipv4/fib_semantics.c:1524
     fib_table_insert+0xa4/0x12bc net/ipv4/fib_trie.c:1212
     fib_magic+0x26c/0x344 net/ipv4/fib_frontend.c:1147
     fib_add_ifaddr+0x114/0x500 net/ipv4/fib_frontend.c:1169
     fib_inetaddr_event+0x114/0x1c0 net/ipv4/fib_frontend.c:1483
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     blocking_notifier_call_chain+0x70/0xa0 kernel/notifier.c:380
     __inet_insert_ifa+0x87c/0xa74 net/ipv4/devinet.c:566
     inet_rtm_newaddr+0xba4/0x1140 net/ipv4/devinet.c:1001
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
     netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
     netlink_unicast+0x600/0x7f8 net/netlink/af_netlink.c:1345
     netlink_sendmsg+0x648/0x948 net/netlink/af_netlink.c:1900
     sock_sendmsg_nosec net/socket.c:800 [inline]
     __sock_sendmsg+0xc8/0x17c net/socket.c:815

netdevsim netdevsim2 netdevsim1 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Forwarded: Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
  2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
                   ` (8 preceding siblings ...)
  2026-09-15 12:14 ` [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
@ 2026-09-15 12:29 ` syzbot
  9 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-09-15 12:29 UTC (permalink / raw)
  To: linux-kernel, syzkaller-bugs

For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com.

***

Subject: Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
Author: penguin-kernel@i-love.sakura.ne.jp

#syz test

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 87cafc932e9e..d518338cd074 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2153,6 +2153,8 @@ enum netdev_reg_state {
  *
  *	FIXME: cleanup struct net_device such that network protocol info
  *	moves out.
+ *
+ *	@netdev_trace_buffer_list: Linked list for debugging refcount leak.
  */
 
 struct net_device {
@@ -2312,6 +2314,9 @@ struct net_device {
 #if IS_ENABLED(CONFIG_TLS_DEVICE)
 	const struct tlsdev_ops *tlsdev_ops;
 #endif
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+	struct list_head	netdev_trace_buffer_list;
+#endif
 
 	unsigned int		operstate;
 	unsigned char		link_mode;
@@ -4498,9 +4503,16 @@ static inline bool dev_nit_active(const struct net_device *dev)
 
 void dev_queue_xmit_nit(struct sk_buff *skb, struct net_device *dev);
 
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+void save_netdev_trace_buffer(struct net_device *dev, int delta);
+#else
+static inline void save_netdev_trace_buffer(struct net_device *dev, int delta) { }
+#endif
+
 static inline void __dev_put(struct net_device *dev)
 {
 	if (dev) {
+		save_netdev_trace_buffer(dev, -1);
 #ifdef CONFIG_PCPU_DEV_REFCNT
 		this_cpu_dec(*dev->pcpu_refcnt);
 #else
@@ -4512,6 +4524,7 @@ static inline void __dev_put(struct net_device *dev)
 static inline void __dev_hold(struct net_device *dev)
 {
 	if (dev) {
+		save_netdev_trace_buffer(dev, 1);
 #ifdef CONFIG_PCPU_DEV_REFCNT
 		this_cpu_inc(*dev->pcpu_refcnt);
 #else
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 96848fc1f02b..20c4c92708b8 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2566,6 +2566,10 @@ static bool rcu_do_batch_check_time(long count, long tlimit,
 	       local_clock() >= tlimit;
 }
 
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+static noinline void rcu_do_batch(struct rcu_data *rdp);
+#endif
+
 /*
  * Invoke any RCU callbacks that have made it to the end of their grace
  * period.  Throttle as specified by rdp->blimit.
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 7980a4a232f9..ad9889563288 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -599,6 +599,10 @@ static inline bool lockdep_softirq_start(void) { return false; }
 static inline void lockdep_softirq_end(bool in_hardirq) { }
 #endif
 
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+static noinline void handle_softirqs(bool ksirqd);
+#endif
+
 static void handle_softirqs(bool ksirqd)
 {
 	unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 3c034cbc5bb3..60daae1c6f17 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -3259,6 +3259,10 @@ static bool manage_workers(struct worker *worker)
 	return true;
 }
 
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+static noinline void process_one_work(struct worker *worker, struct work_struct *work);
+#endif
+
 /**
  * process_one_work - process single work
  * @worker: self
diff --git a/net/core/dev.c b/net/core/dev.c
index 38336858c168..93a7594d586e 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -11639,6 +11639,14 @@ int netdev_refcnt_read(const struct net_device *dev)
 }
 EXPORT_SYMBOL(netdev_refcnt_read);
 
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+static void dump_netdev_trace_buffer(const struct net_device *dev);
+static void erase_netdev_trace_buffer(const struct net_device *dev);
+#else
+static inline void dump_netdev_trace_buffer(const struct net_device *dev) { }
+static inline void erase_netdev_trace_buffer(const struct net_device *dev) { }
+#endif
+
 int netdev_unregister_timeout_secs __read_mostly = 10;
 
 #define WAIT_REFS_MIN_MSECS 1
@@ -11721,6 +11729,7 @@ static struct net_device *netdev_wait_allrefs_any(struct list_head *list)
 				pr_emerg("unregister_netdevice: waiting for %s to become free. Usage count = %d\n",
 					 dev->name, netdev_refcnt_read(dev));
 				ref_tracker_dir_print(&dev->refcnt_tracker, 10);
+				dump_netdev_trace_buffer(dev);
 			}
 
 			warning_time = jiffies;
@@ -12121,6 +12130,9 @@ struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name,
 
 	dev->priv_len = sizeof_priv;
 
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+	INIT_LIST_HEAD(&dev->netdev_trace_buffer_list);
+#endif
 	ref_tracker_dir_init(&dev->refcnt_tracker, 128, "netdev");
 #ifdef CONFIG_PCPU_DEV_REFCNT
 	dev->pcpu_refcnt = alloc_percpu(int);
@@ -12223,6 +12235,7 @@ struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name,
 free_pcpu:
 #ifdef CONFIG_PCPU_DEV_REFCNT
 	free_percpu(dev->pcpu_refcnt);
+	erase_netdev_trace_buffer(dev);
 free_dev:
 #endif
 	ref_tracker_dir_exit(&dev->refcnt_tracker);
@@ -12292,6 +12305,7 @@ void free_netdev(struct net_device *dev)
 	free_percpu(dev->pcpu_refcnt);
 	dev->pcpu_refcnt = NULL;
 #endif
+	erase_netdev_trace_buffer(dev);
 	free_percpu(dev->core_stats);
 	dev->core_stats = NULL;
 	free_percpu(dev->xdp_bulkq);
@@ -13418,6 +13432,12 @@ static struct smp_hotplug_thread backlog_threads = {
 	.setup			= backlog_napi_setup,
 };
 
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+static void __init net_dev_refcnt_tracker_init(void);
+#else
+static void __init net_dev_refcnt_tracker_init(void) { };
+#endif
+
 /*
  *       This is called single threaded during boot, so no need
  *       to take the rtnl semaphore.
@@ -13426,6 +13446,7 @@ static int __init net_dev_init(void)
 {
 	int i, rc = -ENOMEM;
 
+	net_dev_refcnt_tracker_init();
 	BUG_ON(!dev_boot_phase);
 
 	net_dev_struct_check();
@@ -13529,3 +13550,254 @@ static int __init net_dev_init(void)
 }
 
 subsys_initcall(net_dev_init);
+
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+
+#define NETDEV_TRACE_BUFFER_SIZE 32768
+static struct netdev_trace_buffer {
+	struct list_head list;
+	atomic_t count;
+	int trimmed_entries;
+	int nr_entries;
+	unsigned long entries[20];
+} netdev_trace_buffer[NETDEV_TRACE_BUFFER_SIZE];
+static LIST_HEAD(netdev_trace_buffer_list);
+static DEFINE_RAW_SPINLOCK(netdev_trace_buffer_lock);
+static bool netdev_trace_buffer_exhausted;
+static unsigned long start_of_handle_softirqs __ro_after_init;
+static unsigned long end_of_handle_softirqs __ro_after_init;
+
+static int netdev_trace_buffer_init(void)
+{
+	int i;
+
+	for (i = 0; i < NETDEV_TRACE_BUFFER_SIZE; i++)
+		list_add_tail(&netdev_trace_buffer[i].list, &netdev_trace_buffer_list);
+	return 0;
+}
+pure_initcall(netdev_trace_buffer_init);
+
+static int trim_netdev_trace(unsigned long *entries, int nr_entries)
+{
+	char buffer[KSYM_SYMBOL_LEN] = { };
+	char *cp;
+	int i;
+
+	for (i = 0; i < nr_entries; i++) {
+		sprint_symbol_no_offset(buffer, entries[i]);
+		cp = strchr(buffer, ' ');
+		if (cp)
+			*cp = '\0';
+		if (buffer[0] == 'p') {
+			if (!strcmp(buffer, "process_one_work"))
+				return i + 1;
+		} else if (buffer[0] == 'k') {
+			if (!strcmp(buffer, "ksys_unshare"))
+				return i + 1;
+		} else if (buffer[0] == 's') {
+			if (!strcmp(buffer, "sock_sendmsg_nosec") ||
+			    !strcmp(buffer, "sock_recvmsg_nosec"))
+				return i + 1;
+		} else if (buffer[0] == 'r') {
+			if (!strcmp(buffer, "rcu_do_batch"))
+				return i + 1;
+		} else if (buffer[0] == '_') {
+			if (!strcmp(buffer, "__sys_bind") ||
+			    !strcmp(buffer, "__sock_release") ||
+			    !strcmp(buffer, "__sys_bpf"))
+				return i + 1;
+		} else {
+			if (!strcmp(buffer, "do_sock_setsockopt"))
+				return i + 1;
+		}
+	}
+	return nr_entries;
+}
+
+static void dump_netdev_trace_buffer(const struct net_device *dev)
+{
+	struct netdev_trace_buffer *ptr, *tmp;
+	int count, balance = 0, pos = 0;
+
+	/* Update trimmed_entries field. Do not modify nr_entries field
+	 * in case save_netdev_trace_buffer() is called again.
+	 */
+	list_for_each_entry_rcu(ptr, &dev->netdev_trace_buffer_list, list,
+				/* list elements can't go away. */ 1) {
+		if (ptr->trimmed_entries == ptr->nr_entries)
+			ptr->trimmed_entries = trim_netdev_trace(ptr->entries, ptr->nr_entries);
+	}
+	/* Merge duplicated entries using trimmed_entries field. */
+	list_for_each_entry_rcu(ptr, &dev->netdev_trace_buffer_list, list,
+				/* list elements can't go away. */ 1) {
+		/* Skip empty entries. */
+		if (!atomic_read(&ptr->count))
+			continue;
+		tmp = ptr;
+		list_for_each_entry_continue_rcu(tmp, &dev->netdev_trace_buffer_list, list) {
+			if (ptr->trimmed_entries != tmp->trimmed_entries ||
+			    memcmp(ptr->entries, tmp->entries,
+				   ptr->trimmed_entries * sizeof(unsigned long)))
+				continue;
+			/* Skip empty entries. */
+			count = atomic_read(&tmp->count);
+			if (!count)
+				continue;
+			/* Move count from non-first entry to first entry. */
+			atomic_add(count, &ptr->count);
+			atomic_sub(count, &tmp->count);
+		}
+		/* It is safe to call cond_resched() because this function is
+		 * called from schedulable context.
+		 */
+		cond_resched();
+	}
+	/* Report all entries for this device. */
+	list_for_each_entry_rcu(ptr, &dev->netdev_trace_buffer_list, list,
+				/* list elements can't go away. */ 1) {
+		/* Skip empty entries. */
+		count = atomic_read(&ptr->count);
+		if (!count)
+			continue;
+		/* Report this entry. It is safe to call cond_resched() because
+		 * this function is called from schedulable context.
+		 */
+		pos++;
+		balance += count;
+		pr_info("Call trace for %s[%d] %+d at\n", dev->name, pos, count);
+		stack_trace_print(ptr->entries, ptr->trimmed_entries, 4);
+		cond_resched();
+	}
+	if (!netdev_trace_buffer_exhausted)
+		pr_info("balance as of %s[%d] is %d\n", dev->name, pos, balance);
+}
+
+static void erase_netdev_trace_buffer(const struct net_device *dev)
+{
+	struct netdev_trace_buffer *ptr;
+	unsigned long flags;
+
+	/* This function is called after free_percpu(dev->pcpu_refcnt) was already
+	 * called, which means that no more __dev_put()/__dev_hold() call can be made.
+	 * Therefore, no more save_netdev_trace_buffer() call will be made, and we can
+	 * safely return list elements to netdev_trace_buffer_list.
+	 */
+	raw_spin_lock_irqsave(&netdev_trace_buffer_lock, flags);
+	while (!list_empty(&dev->netdev_trace_buffer_list)) {
+		ptr = list_first_entry(&dev->netdev_trace_buffer_list, typeof(*ptr), list);
+		list_del(&ptr->list);
+		list_add_tail(&ptr->list, &netdev_trace_buffer_list);
+	}
+	raw_spin_unlock_irqrestore(&netdev_trace_buffer_lock, flags);
+}
+
+void save_netdev_trace_buffer(struct net_device *dev, int delta)
+{
+	struct netdev_trace_buffer *ptr;
+	unsigned long entries[ARRAY_SIZE(ptr->entries)];
+	int nr_entries;
+	unsigned long flags;
+
+	/* This function is not NMI-safe. Give up if called from NMI context. */
+	if (in_nmi())
+		return;
+	/* Get stack traces. */
+	nr_entries = stack_trace_save(entries, ARRAY_SIZE(ptr->entries), 1);
+	/* Trim traces of process context now if called from softirq context, for
+	 * we will easily exhaust netdev_trace_buffer_list if we don't trim traces
+	 * of process context when trying to compare with existing entries.
+	 *
+	 * Avoid kallsyms lookup, by using cached address resolved upon boot.
+	 */
+	if (in_softirq()) {
+		int i;
+
+		for (i = 0; i < nr_entries; i++) {
+			if (entries[i] >= start_of_handle_softirqs &&
+			    entries[i] < end_of_handle_softirqs) {
+				nr_entries = i + 1;
+				break;
+			}
+		}
+	}
+	/* Compare with existing entries at best-effort basis. Since duplicated entries
+	 * created by race condition will be merged when reporting, we don't use lock here.
+	 */
+	list_for_each_entry_rcu(ptr, &dev->netdev_trace_buffer_list, list,
+				/* list elements can't go away. */ 1) {
+		if (ptr->nr_entries == nr_entries &&
+		    !memcmp(ptr->entries, entries, nr_entries * sizeof(unsigned long))) {
+			atomic_add(delta, &ptr->count);
+			return;
+		}
+	}
+	/* Add a new entry. We don't re-compare with existing entries with lock held, for
+	 * duplicated entries created by race condition will be merged when reporting.
+	 * But we use raw spinlock here in case this function is called with some other
+	 * raw spinlock already held.
+	 */
+	raw_spin_lock_irqsave(&netdev_trace_buffer_lock, flags);
+	if (!list_empty(&netdev_trace_buffer_list)) {
+		/* Remove one entry from netdev_trace_buffer_list and initialize it. */
+		ptr = list_first_entry(&netdev_trace_buffer_list, typeof(*ptr), list);
+		list_del(&ptr->list);
+		atomic_set(&ptr->count, delta);
+		ptr->nr_entries = nr_entries;
+		ptr->trimmed_entries = nr_entries;
+		memmove(ptr->entries, entries, nr_entries * sizeof(unsigned long));
+		/* Append it in RCU manner, for readers are lockless. */
+		list_add_tail_rcu(&ptr->list, &dev->netdev_trace_buffer_list);
+	} else {
+		netdev_trace_buffer_exhausted = true;
+	}
+	raw_spin_unlock_irqrestore(&netdev_trace_buffer_lock, flags);
+}
+EXPORT_SYMBOL(save_netdev_trace_buffer);
+
+struct timer_completion_struct {
+	struct timer_list timer;
+	struct completion completion;
+};
+
+/* Resolve address of handle_softirqs() and cache it, in order to avoid looking up
+ * kallsyms every time.
+ */
+static void __init netdev_addr_resolve_func(struct timer_list *timer)
+{
+	unsigned long entries[40];
+	int nr_entries = stack_trace_save(entries, ARRAY_SIZE(entries), 1);
+	char buffer[KSYM_SYMBOL_LEN] = { };
+	unsigned long offset, size;
+	char *cp;
+	int i;
+
+	for (i = 0; i < nr_entries; i++) {
+		sprint_symbol(buffer, entries[i]);
+		if (strncmp(buffer, "handle_softirqs", 15))
+			continue;
+		cp = strchr(buffer, '+');
+		if (!cp || sscanf(cp, "+%lx/%lx", &offset, &size) != 2)
+			continue;
+		start_of_handle_softirqs = entries[i] - offset;
+		end_of_handle_softirqs = start_of_handle_softirqs + size;
+		break;
+	}
+	complete(&container_of(timer, struct timer_completion_struct, timer)->completion);
+}
+
+static void __init net_dev_refcnt_tracker_init(void)
+{
+	struct timer_completion_struct tc;
+
+	timer_setup_on_stack(&tc.timer, netdev_addr_resolve_func, 0);
+	init_completion(&tc.completion);
+	/* Schedule a call to netdev_addr_resolve_func(). */
+	mod_timer(&tc.timer, jiffies);
+	/* Wait for netdev_addr_resolve_func() to be called. */
+	wait_for_completion(&tc.completion);
+	/* Wait for netdev_addr_resolve_func() to complete. */
+	timer_delete_sync(&tc.timer);
+	timer_destroy_on_stack(&tc.timer);
+}
+
+#endif
diff --git a/net/socket.c b/net/socket.c
index c05d86e63abf..b3ddcc283cbb 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -723,7 +723,11 @@ struct socket *sock_alloc(void)
 }
 EXPORT_SYMBOL(sock_alloc);
 
-static void __sock_release(struct socket *sock, struct inode *inode)
+static
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+noinline
+#endif
+void __sock_release(struct socket *sock, struct inode *inode)
 {
 	const struct proto_ops *ops = READ_ONCE(sock->ops);
 
@@ -795,7 +799,13 @@ static noinline void call_trace_sock_send_length(struct sock *sk, int ret,
 	trace_sock_send_length(sk, ret, 0);
 }
 
-static inline int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg)
+static
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+noinline
+#else
+inline
+#endif
+int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg)
 {
 	int ret = INDIRECT_CALL_INET(READ_ONCE(sock->ops)->sendmsg, inet6_sendmsg,
 				     inet_sendmsg, sock, msg,
@@ -1145,8 +1155,13 @@ static noinline void call_trace_sock_recv_length(struct sock *sk, int ret, int f
 	trace_sock_recv_length(sk, ret, flags);
 }
 
-static inline int sock_recvmsg_nosec(struct socket *sock, struct msghdr *msg,
-				     int flags)
+static
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+noinline
+#else
+inline
+#endif
+int sock_recvmsg_nosec(struct socket *sock, struct msghdr *msg, int flags)
 {
 	int ret = INDIRECT_CALL_INET(READ_ONCE(sock->ops)->recvmsg,
 				     inet6_recvmsg,
@@ -2653,9 +2668,12 @@ static int copy_msghdr_from_user(struct msghdr *kmsg,
 	return err < 0 ? err : 0;
 }
 
-static int ____sys_sendmsg(struct socket *sock, struct msghdr *msg_sys,
-			   unsigned int flags, struct used_address *used_address,
-			   unsigned int allowed_msghdr_flags)
+static
+#if defined(CONFIG_NET_DEV_REFCNT_TRACKER) && defined(CONFIG_KALLSYMS)
+noinline
+#endif
+int ____sys_sendmsg(struct socket *sock, struct msghdr *msg_sys, unsigned int flags,
+		    struct used_address *used_address, unsigned int allowed_msghdr_flags)
 {
 	unsigned char ctl[sizeof(struct cmsghdr) + 20]
 				__aligned(sizeof(__kernel_size_t));
-- 
2.52.0


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
       [not found] <0d52ff78-4135-4761-a54a-d80ecfe1d88e@I-love.SAKURA.ne.jp>
@ 2026-09-15 12:56 ` syzbot
  0 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-09-15 12:56 UTC (permalink / raw)
  To: linux-kernel, penguin-kernel, syzkaller-bugs

Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
unregister_netdevice: waiting for DEV to become free

unregister_netdevice: waiting for netdevsim2 to become free. Usage count = 2
ref_tracker: netdev@00000000163a43c1 has 1/1 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4541 [inline]
     netdev_tracker_alloc include/linux/netdevice.h:4553 [inline]
     netdev_get_by_index+0x84/0xdc net/core/dev.c:1049
     fib6_nh_init+0x258/0x1514 net/ipv6/route.c:3615
     ip6_route_info_create_nh+0x13c/0x98c net/ipv6/route.c:3914
     addrconf_f6i_alloc+0x1e4/0x3b4 net/ipv6/route.c:4718
     ipv6_add_addr+0x484/0xdb0 net/ipv6/addrconf.c:1132
     addrconf_add_linklocal+0x1e0/0x378 net/ipv6/addrconf.c:3335
     addrconf_addr_gen+0x27c/0x2dc net/ipv6/addrconf.c:-1
     addrconf_init_auto_addrs+0x390/0x764 net/ipv6/addrconf.c:-1
     addrconf_notify+0x774/0xbbc net/ipv6/addrconf.c:3776
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     __dev_notify_flags+0x288/0x438 net/core/dev.c:9853
     netif_change_flags+0xd0/0x15c net/core/dev.c:9882
     do_setlink+0xc28/0x31e8 net/core/rtnetlink.c:3266
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215

Call trace for netdevsim2[1] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     rx_queue_add_kobject net/core/net-sysfs.c:1236 [inline]
     net_rx_queue_update_kobjects+0x108/0x67c net/core/net-sysfs.c:1301
     register_queue_kobjects net/core/net-sysfs.c:2093 [inline]
     netdev_register_kobject+0x210/0x328 net/core/net-sysfs.c:2344
     register_netdevice+0xd74/0x14c0 net/core/dev.c:11503
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
     device_add+0x6cc/0x9e0 drivers/base/core.c:3776
     device_register+0x28/0x38 drivers/base/core.c:3858
     nsim_bus_dev_new drivers/net/netdevsim/bus.c:468 [inline]
     new_device_store+0x2c4/0x58c drivers/net/netdevsim/bus.c:191
     bus_attr_store+0x80/0xa4 drivers/base/bus.c:172
Call trace for netdevsim2[2] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     netdev_queue_add_kobject net/core/net-sysfs.c:1973 [inline]
     netdev_queue_update_kobjects+0x158/0x5f0 net/core/net-sysfs.c:2035
     register_queue_kobjects net/core/net-sysfs.c:2098 [inline]
     netdev_register_kobject+0x24c/0x328 net/core/net-sysfs.c:2344
     register_netdevice+0xd74/0x14c0 net/core/dev.c:11503
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
     device_add+0x6cc/0x9e0 drivers/base/core.c:3776
     device_register+0x28/0x38 drivers/base/core.c:3858
     nsim_bus_dev_new drivers/net/netdevsim/bus.c:468 [inline]
     new_device_store+0x2c4/0x58c drivers/net/netdevsim/bus.c:191
     bus_attr_store+0x80/0xa4 drivers/base/bus.c:172
Call trace for netdevsim2[3] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold+0x38/0xf4 include/linux/netdevice.h:4569
     register_netdevice+0xf4c/0x14c0 net/core/dev.c:11527
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
     device_add+0x6cc/0x9e0 drivers/base/core.c:3776
     device_register+0x28/0x38 drivers/base/core.c:3858
     nsim_bus_dev_new drivers/net/netdevsim/bus.c:468 [inline]
     new_device_store+0x2c4/0x58c drivers/net/netdevsim/bus.c:191
     bus_attr_store+0x80/0xa4 drivers/base/bus.c:172
     sysfs_kf_write+0xe0/0x108 fs/sysfs/file.c:145
Call trace for netdevsim2[4] +3 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     netdevice_queue_work drivers/infiniband/core/roce_gid_mgmt.c:674 [inline]
     netdevice_event+0x424/0x7c0 drivers/infiniband/core/roce_gid_mgmt.c:822
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     register_netdevice+0x1018/0x14c0 net/core/dev.c:11541
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
     device_add+0x6cc/0x9e0 drivers/base/core.c:3776
     device_register+0x28/0x38 drivers/base/core.c:3858
Call trace for netdevsim2[5] +3 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     netdevice_queue_work drivers/infiniband/core/roce_gid_mgmt.c:675 [inline]
     netdevice_event+0x4b0/0x7c0 drivers/infiniband/core/roce_gid_mgmt.c:822
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     register_netdevice+0x1018/0x14c0 net/core/dev.c:11541
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
     device_add+0x6cc/0x9e0 drivers/base/core.c:3776
     device_register+0x28/0x38 drivers/base/core.c:3858
Call trace for netdevsim2[6] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     neigh_parms_alloc+0x140/0x474 net/core/neighbour.c:1773
     inetdev_init+0x110/0x4a8 net/ipv4/devinet.c:280
     inetdev_event+0x248/0x1184 net/ipv4/devinet.c:1590
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     register_netdevice+0x1018/0x14c0 net/core/dev.c:11541
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
Call trace for netdevsim2[7] -7 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     dev_put include/linux/netdevice.h:4604 [inline]
     netdevice_event_work_handler+0xfc/0x26c drivers/infiniband/core/roce_gid_mgmt.c:652
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[8] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     inetdev_init+0x174/0x4a8 net/ipv4/devinet.c:286
     inetdev_event+0x248/0x1184 net/ipv4/devinet.c:1590
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     register_netdevice+0x1018/0x14c0 net/core/dev.c:11541
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
     device_add+0x6cc/0x9e0 drivers/base/core.c:3776
Call trace for netdevsim2[9] -7 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     dev_put include/linux/netdevice.h:4604 [inline]
     netdevice_event_work_handler+0x17c/0x26c drivers/infiniband/core/roce_gid_mgmt.c:653
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[10] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     neigh_parms_alloc+0x140/0x474 net/core/neighbour.c:1773
     ipv6_add_dev+0x380/0x1024 net/ipv6/addrconf.c:403
     addrconf_notify+0x400/0xbbc net/ipv6/addrconf.c:3686
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     register_netdevice+0x1018/0x14c0 net/core/dev.c:11541
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
Call trace for netdevsim2[11] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     ipv6_add_dev+0x3e8/0x1024 net/ipv6/addrconf.c:411
     addrconf_notify+0x400/0xbbc net/ipv6/addrconf.c:3686
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     register_netdevice+0x1018/0x14c0 net/core/dev.c:11541
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
     device_add+0x6cc/0x9e0 drivers/base/core.c:3776
Call trace for netdevsim2[12] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     udp_tunnel_nic_register net/ipv4/udp_tunnel_nic.c:852 [inline]
     udp_tunnel_nic_netdevice_event+0x93c/0x1444 net/ipv4/udp_tunnel_nic.c:933
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     register_netdevice+0x1018/0x14c0 net/core/dev.c:11541
     nsim_init_netdevsim drivers/net/netdevsim/netdev.c:1072 [inline]
     nsim_create+0x944/0xcf4 drivers/net/netdevsim/netdev.c:1154
     __nsim_dev_port_add+0x59c/0x95c drivers/net/netdevsim/dev.c:1434
     nsim_dev_port_add_all+0x50/0x114 drivers/net/netdevsim/dev.c:1495
     nsim_drv_probe+0x780/0xa1c drivers/net/netdevsim/dev.c:1656
     nsim_bus_probe+0x20/0x30 drivers/net/netdevsim/bus.c:420
     call_driver_probe drivers/base/dd.c:-1 [inline]
     really_probe+0x29c/0x800 drivers/base/dd.c:706
     __driver_probe_device+0x1e0/0x350 drivers/base/dd.c:868
     driver_probe_device+0x6c/0x19c drivers/base/dd.c:898
     __device_attach_driver+0x198/0x2f8 drivers/base/dd.c:1026
     bus_for_each_drv+0x144/0x1dc drivers/base/bus.c:500
     __device_attach+0x248/0x390 drivers/base/dd.c:1098
     device_initial_probe+0x90/0xc8 drivers/base/dd.c:1153
     bus_probe_device+0x58/0x120 drivers/base/bus.c:620
     device_add+0x6cc/0x9e0 drivers/base/core.c:3776
     device_register+0x28/0x38 drivers/base/core.c:3858
Call trace for netdevsim2[13] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     netdev_work_enqueue+0x148/0x2b0 net/core/netdev_work.c:40
     __netdev_work_core_sched+0x2c/0x3c net/core/netdev_work.c:109
     netif_rx_mode_queue net/core/dev_addr_lists.c:1337 [inline]
     __dev_set_rx_mode+0x188/0x314 net/core/dev_addr_lists.c:1376
     dev_set_rx_mode+0x60/0x84 net/core/dev_addr_lists.c:1393
     __dev_open+0x54c/0x76c net/core/dev.c:1732
     __dev_change_flags+0x294/0x698 net/core/dev.c:9812
     netif_change_flags+0x80/0x15c net/core/dev.c:9877
     do_setlink+0xc28/0x31e8 net/core/rtnetlink.c:3266
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
     netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
     netlink_unicast+0x600/0x7f8 net/netlink/af_netlink.c:1345
     netlink_sendmsg+0x648/0x948 net/netlink/af_netlink.c:1900
     sock_sendmsg_nosec+0x88/0x138 net/socket.c:810
Call trace for netdevsim2[14] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     qdisc_alloc+0x43c/0x7bc net/sched/sch_generic.c:1030
     qdisc_create_dflt+0x9c/0x570 net/sched/sch_generic.c:1053
     attach_one_default_qdisc+0xb0/0x194 net/sched/sch_generic.c:1219
     netdev_for_each_tx_queue include/linux/netdevice.h:2754 [inline]
     attach_default_qdiscs net/sched/sch_generic.c:1237 [inline]
     dev_activate+0x250/0xc4c net/sched/sch_generic.c:1296
     __dev_open+0x554/0x76c net/core/dev.c:1733
     __dev_change_flags+0x294/0x698 net/core/dev.c:9812
     netif_change_flags+0x80/0x15c net/core/dev.c:9877
     do_setlink+0xc28/0x31e8 net/core/rtnetlink.c:3266
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
     netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
     netlink_unicast+0x600/0x7f8 net/netlink/af_netlink.c:1345
     netlink_sendmsg+0x648/0x948 net/netlink/af_netlink.c:1900
     sock_sendmsg_nosec+0x88/0x138 net/socket.c:810
Call trace for netdevsim2[15] +3 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     netdevice_queue_work drivers/infiniband/core/roce_gid_mgmt.c:674 [inline]
     netdevice_event+0x424/0x7c0 drivers/infiniband/core/roce_gid_mgmt.c:822
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     __dev_notify_flags+0x288/0x438 net/core/dev.c:9853
     netif_change_flags+0xd0/0x15c net/core/dev.c:9882
     do_setlink+0xc28/0x31e8 net/core/rtnetlink.c:3266
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
     netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
     netlink_unicast+0x600/0x7f8 net/netlink/af_netlink.c:1345
     netlink_sendmsg+0x648/0x948 net/netlink/af_netlink.c:1900
     sock_sendmsg_nosec+0x88/0x138 net/socket.c:810
Call trace for netdevsim2[16] +3 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     netdevice_queue_work drivers/infiniband/core/roce_gid_mgmt.c:675 [inline]
     netdevice_event+0x4b0/0x7c0 drivers/infiniband/core/roce_gid_mgmt.c:822
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     __dev_notify_flags+0x288/0x438 net/core/dev.c:9853
     netif_change_flags+0xd0/0x15c net/core/dev.c:9882
     do_setlink+0xc28/0x31e8 net/core/rtnetlink.c:3266
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
     netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
     netlink_unicast+0x600/0x7f8 net/netlink/af_netlink.c:1345
     netlink_sendmsg+0x648/0x948 net/netlink/af_netlink.c:1900
     sock_sendmsg_nosec+0x88/0x138 net/socket.c:810
Call trace for netdevsim2[17] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     dev_get_by_index+0x1ac/0x308 net/core/dev.c:1024
     netdev_get_by_index+0x34/0xdc net/core/dev.c:1047
     fib6_nh_init+0x258/0x1514 net/ipv6/route.c:3615
     ip6_route_info_create_nh+0x13c/0x98c net/ipv6/route.c:3914
     ip6_route_add+0x8c/0x1b4 net/ipv6/route.c:3966
     addrconf_add_mroute+0x14c/0x1d0 net/ipv6/addrconf.c:2568
     addrconf_add_dev+0xe4/0x188 net/ipv6/addrconf.c:2586
     addrconf_dev_config net/ipv6/addrconf.c:3508 [inline]
     addrconf_init_auto_addrs+0x304/0x764 net/ipv6/addrconf.c:3596
     addrconf_notify+0x774/0xbbc net/ipv6/addrconf.c:3776
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     __dev_notify_flags+0x288/0x438 net/core/dev.c:9853
     netif_change_flags+0xd0/0x15c net/core/dev.c:9882
     do_setlink+0xc28/0x31e8 net/core/rtnetlink.c:3266
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
     netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
     netlink_unicast+0x600/0x7f8 net/netlink/af_netlink.c:1345
Call trace for netdevsim2[18] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     dev_get_by_index+0x1ac/0x308 net/core/dev.c:1024
     netdev_get_by_index+0x34/0xdc net/core/dev.c:1047
     fib6_nh_init+0x258/0x1514 net/ipv6/route.c:3615
     ip6_route_info_create_nh+0x13c/0x98c net/ipv6/route.c:3914
     addrconf_f6i_alloc+0x1e4/0x3b4 net/ipv6/route.c:4718
     ipv6_add_addr+0x484/0xdb0 net/ipv6/addrconf.c:1132
     addrconf_add_linklocal+0x1e0/0x378 net/ipv6/addrconf.c:3335
     addrconf_addr_gen+0x27c/0x2dc net/ipv6/addrconf.c:-1
     addrconf_init_auto_addrs+0x390/0x764 net/ipv6/addrconf.c:-1
     addrconf_notify+0x774/0xbbc net/ipv6/addrconf.c:3776
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     __dev_notify_flags+0x288/0x438 net/core/dev.c:9853
     netif_change_flags+0xd0/0x15c net/core/dev.c:9882
     do_setlink+0xc28/0x31e8 net/core/rtnetlink.c:3266
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
Call trace for netdevsim2[19] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     addr_event+0x288/0x408 drivers/infiniband/core/roce_gid_mgmt.c:870
     inet6addr_event+0xa4/0xd8 drivers/infiniband/core/roce_gid_mgmt.c:903
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     atomic_notifier_call_chain+0xf0/0x1ac kernel/notifier.c:223
     inet6addr_notifier_call_chain+0x30/0x40 net/ipv6/addrconf_core.c:108
     ipv6_add_addr+0xb28/0xdb0 net/ipv6/addrconf.c:1193
     addrconf_add_linklocal+0x1e0/0x378 net/ipv6/addrconf.c:3335
     addrconf_addr_gen+0x27c/0x2dc net/ipv6/addrconf.c:-1
     addrconf_init_auto_addrs+0x390/0x764 net/ipv6/addrconf.c:-1
     addrconf_notify+0x774/0xbbc net/ipv6/addrconf.c:3776
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     __dev_notify_flags+0x288/0x438 net/core/dev.c:9853
     netif_change_flags+0xd0/0x15c net/core/dev.c:9882
     do_setlink+0xc28/0x31e8 net/core/rtnetlink.c:3266
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
Call trace for netdevsim2[20] -2 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     dev_put include/linux/netdevice.h:4604 [inline]
     update_gid_event_work_handler+0x88/0x118 drivers/infiniband/core/roce_gid_mgmt.c:834
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[21] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     dev_get_by_index+0x1ac/0x308 net/core/dev.c:1024
     netdev_get_by_index+0x34/0xdc net/core/dev.c:1047
     fib6_nh_init+0x258/0x1514 net/ipv6/route.c:3615
     ip6_route_info_create_nh+0x13c/0x98c net/ipv6/route.c:3914
     ip6_route_add+0x8c/0x1b4 net/ipv6/route.c:3966
     addrconf_prefix_route+0x1f4/0x2b8 net/ipv6/addrconf.c:2504
     addrconf_add_linklocal+0x238/0x378 net/ipv6/addrconf.c:3337
     addrconf_addr_gen+0x27c/0x2dc net/ipv6/addrconf.c:-1
     addrconf_init_auto_addrs+0x390/0x764 net/ipv6/addrconf.c:-1
     addrconf_notify+0x774/0xbbc net/ipv6/addrconf.c:3776
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     __dev_notify_flags+0x288/0x438 net/core/dev.c:9853
     netif_change_flags+0xd0/0x15c net/core/dev.c:9882
     do_setlink+0xc28/0x31e8 net/core/rtnetlink.c:3266
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
Call trace for netdevsim2[22] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     netdev_work_dequeue+0x1c4/0x264 net/core/netdev_work.c:61
     __netdev_work_core_cancel+0x2c/0x3c net/core/netdev_work.c:115
     netif_rx_mode_sync+0x24/0x5c net/core/dev_addr_lists.c:1410
     do_setlink+0x96c/0x31e8 net/core/rtnetlink.c:3520
     rtnl_changelink net/core/rtnetlink.c:3905 [inline]
     __rtnl_newlink net/core/rtnetlink.c:4076 [inline]
     rtnl_newlink+0xf44/0x138c net/core/rtnetlink.c:4215
     rtnetlink_rcv_msg+0x66c/0x9bc net/core/rtnetlink.c:7132
     netlink_rcv_skb+0x238/0x414 net/netlink/af_netlink.c:2556
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7159
     netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline]
     netlink_unicast+0x600/0x7f8 net/netlink/af_netlink.c:1345
     netlink_sendmsg+0x648/0x948 net/netlink/af_netlink.c:1900
     sock_sendmsg_nosec+0x88/0x138 net/socket.c:810
Call trace for netdevsim2[23] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     netdev_work_enqueue+0x148/0x2b0 net/core/netdev_work.c:40
     __netdev_work_core_sched+0x2c/0x3c net/core/netdev_work.c:109
     netif_rx_mode_queue net/core/dev_addr_lists.c:1337 [inline]
     __dev_set_rx_mode+0x188/0x314 net/core/dev_addr_lists.c:1376
     __dev_mc_add+0xc4/0x10c net/core/dev_addr_lists.c:1002
     dev_mc_add+0x2c/0x3c net/core/dev_addr_lists.c:1016
     igmp6_group_added+0x1d0/0x430 net/ipv6/mcast.c:681
     __ipv6_dev_mc_inc+0x7d0/0x9e4 net/ipv6/mcast.c:973
     ipv6_dev_mc_inc+0x2c/0x3c net/ipv6/mcast.c:982
     addrconf_join_solict+0xec/0x170 net/ipv6/addrconf.c:2262
     addrconf_dad_begin net/ipv6/addrconf.c:4135 [inline]
     addrconf_dad_work+0x1ec/0xfe8 net/ipv6/addrconf.c:4263
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[24] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     netdev_work_proc+0xbc/0x6fc net/core/netdev_work.c:152
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[25] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     netdev_work_proc+0x328/0x6fc net/core/netdev_work.c:164
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[26] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     netdev_work_proc+0x520/0x6fc net/core/netdev_work.c:174
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[27] +2 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dst_init+0x6c/0x438 net/core/dst.c:52
     dst_alloc+0x118/0x15c net/core/dst.c:94
     ip6_dst_alloc+0x38/0xc8 net/ipv6/route.c:342
     icmp6_dst_alloc+0x6c/0x260 net/ipv6/route.c:3346
     mld_sendpack+0x668/0xfec net/ipv6/mcast.c:1859
     mld_send_cr net/ipv6/mcast.c:2171 [inline]
     mld_ifc_work+0x76c/0x9e4 net/ipv6/mcast.c:2711
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[28] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     ___neigh_create+0xc08/0x2340 net/core/neighbour.c:661
     __neigh_create+0x80/0xa4 net/core/neighbour.c:740
     ip6_finish_output2+0xedc/0x1b68 net/ipv6/ip6_output.c:130
     __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]
     ip6_finish_output+0x230/0x618 net/ipv6/ip6_output.c:221
     NF_HOOK_COND include/linux/netfilter.h:314 [inline]
     ip6_output+0x2d0/0x644 net/ipv6/ip6_output.c:248
     dst_output include/net/dst.h:470 [inline]
     NF_HOOK+0x14c/0x464 include/linux/netfilter.h:325
     mld_sendpack+0x7f4/0xfec net/ipv6/mcast.c:1870
     mld_send_cr net/ipv6/mcast.c:2171 [inline]
     mld_ifc_work+0x76c/0x9e4 net/ipv6/mcast.c:2711
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[29] -6 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     dst_destroy+0x100/0x2cc net/core/dst.c:115
     dst_destroy_rcu+0x20/0x30 net/core/dst.c:133
     rcu_do_batch+0x36c/0xbb8 kernel/rcu/tree.c:2654
Call trace for netdevsim2[30] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dst_init+0x6c/0x438 net/core/dst.c:52
     dst_alloc+0x118/0x15c net/core/dst.c:94
     ip6_dst_alloc+0x38/0xc8 net/ipv6/route.c:342
     icmp6_dst_alloc+0x6c/0x260 net/ipv6/route.c:3346
     ndisc_send_skb+0x3e4/0x162c net/ipv6/ndisc.c:492
     ndisc_send_ns+0xd8/0x168 net/ipv6/ndisc.c:672
     addrconf_dad_work+0x77c/0xfe8 net/ipv6/addrconf.c:4318
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[31] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     ___neigh_create+0xc08/0x2340 net/core/neighbour.c:661
     __neigh_create+0x80/0xa4 net/core/neighbour.c:740
     ip6_finish_output2+0xedc/0x1b68 net/ipv6/ip6_output.c:130
     __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]
     ip6_finish_output+0x230/0x618 net/ipv6/ip6_output.c:221
     NF_HOOK_COND include/linux/netfilter.h:314 [inline]
     ip6_output+0x2d0/0x644 net/ipv6/ip6_output.c:248
     dst_output include/net/dst.h:470 [inline]
     NF_HOOK include/linux/netfilter.h:325 [inline]
     ndisc_send_skb+0xc18/0x162c net/ipv6/ndisc.c:513
     ndisc_send_ns+0xd8/0x168 net/ipv6/ndisc.c:672
     addrconf_dad_work+0x77c/0xfe8 net/ipv6/addrconf.c:4318
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[32] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dst_init+0x6c/0x438 net/core/dst.c:52
     dst_alloc+0x118/0x15c net/core/dst.c:94
     ip6_dst_alloc+0x38/0xc8 net/ipv6/route.c:342
     icmp6_dst_alloc+0x6c/0x260 net/ipv6/route.c:3346
     mld_sendpack+0x668/0xfec net/ipv6/mcast.c:1859
     mld_send_initial_cr+0x238/0x2fc net/ipv6/mcast.c:2288
     ipv6_mc_dad_complete+0x74/0x170 net/ipv6/mcast.c:2296
     addrconf_dad_completed+0x530/0x9e4 net/ipv6/addrconf.c:4376
     addrconf_dad_work+0x8a4/0xfe8 net/ipv6/addrconf.c:-1
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[33] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dst_init+0x6c/0x438 net/core/dst.c:52
     dst_alloc+0x118/0x15c net/core/dst.c:94
     ip6_dst_alloc+0x38/0xc8 net/ipv6/route.c:342
     icmp6_dst_alloc+0x6c/0x260 net/ipv6/route.c:3346
     ndisc_send_skb+0x3e4/0x162c net/ipv6/ndisc.c:492
     ndisc_send_rs+0x378/0x504 net/ipv6/ndisc.c:724
     addrconf_dad_completed+0x580/0x9e4 net/ipv6/addrconf.c:4396
     addrconf_dad_work+0x8a4/0xfe8 net/ipv6/addrconf.c:-1
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[34] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     ___neigh_create+0xc08/0x2340 net/core/neighbour.c:661
     __neigh_create+0x80/0xa4 net/core/neighbour.c:740
     ip6_finish_output2+0xedc/0x1b68 net/ipv6/ip6_output.c:130
     __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]
     ip6_finish_output+0x230/0x618 net/ipv6/ip6_output.c:221
     NF_HOOK_COND include/linux/netfilter.h:314 [inline]
     ip6_output+0x2d0/0x644 net/ipv6/ip6_output.c:248
     dst_output include/net/dst.h:470 [inline]
     NF_HOOK include/linux/netfilter.h:325 [inline]
     ndisc_send_skb+0xc18/0x162c net/ipv6/ndisc.c:513
     ndisc_send_rs+0x378/0x504 net/ipv6/ndisc.c:724
     addrconf_dad_completed+0x580/0x9e4 net/ipv6/addrconf.c:4396
     addrconf_dad_work+0x8a4/0xfe8 net/ipv6/addrconf.c:-1
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[35] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dst_init+0x6c/0x438 net/core/dst.c:52
     dst_alloc+0x118/0x15c net/core/dst.c:94
     ip6_dst_alloc+0x38/0xc8 net/ipv6/route.c:342
     icmp6_dst_alloc+0x6c/0x260 net/ipv6/route.c:3346
     mld_sendpack+0x668/0xfec net/ipv6/mcast.c:1859
     mld_send_initial_cr+0x238/0x2fc net/ipv6/mcast.c:2288
     mld_dad_work+0x40/0x1d8 net/ipv6/mcast.c:2311
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[36] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     linkwatch_add_event net/core/link_watch.c:131 [inline]
     linkwatch_fire_event+0x13c/0x238 net/core/link_watch.c:324
     netif_carrier_off+0x9c/0x114 net/sched/sch_generic.c:657
     nsim_stop+0x90/0x3fc drivers/net/netdevsim/netdev.c:551
     __dev_close_many+0x2f4/0x648 net/core/dev.c:1798
     netif_close_many+0x1d8/0x51c net/core/dev.c:1824
     netif_close_many_and_unlock+0x38/0x15c net/core/dev.c:12425
     unregister_netdevice_many_notify+0x5a4/0x176c net/core/dev.c:12495
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[37] -3 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     neigh_destroy+0x328/0x57c net/core/neighbour.c:937
     neigh_release include/net/neighbour.h:459 [inline]
     neigh_cleanup_and_release+0x130/0x46c net/core/neighbour.c:121
     neigh_flush_one+0x348/0x3d0 net/core/neighbour.c:415
     neigh_flush_dev+0x12c/0x1d4 net/core/neighbour.c:433
     __neigh_ifdown+0xb0/0x57c net/core/neighbour.c:466
     neigh_ifdown+0x2c/0x40 net/core/neighbour.c:489
     rt6_disable_ip+0x55c/0x588 net/ipv6/route.c:5047
     addrconf_ifdown+0x134/0x11b4 net/ipv6/addrconf.c:3889
     addrconf_notify+0x29c/0xbbc net/ipv6/addrconf.c:-1
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     netif_close_many+0x368/0x51c net/core/dev.c:1829
     netif_close_many_and_unlock+0x38/0x15c net/core/dev.c:12425
     unregister_netdevice_many_notify+0x5a4/0x176c net/core/dev.c:12495
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
Call trace for netdevsim2[38] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     addr_event+0x288/0x408 drivers/infiniband/core/roce_gid_mgmt.c:870
     inet6addr_event+0xa4/0xd8 drivers/infiniband/core/roce_gid_mgmt.c:903
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     atomic_notifier_call_chain+0xf0/0x1ac kernel/notifier.c:223
     inet6addr_notifier_call_chain+0x30/0x40 net/ipv6/addrconf_core.c:108
     addrconf_ifdown+0xa48/0x11b4 net/ipv6/addrconf.c:4014
     addrconf_notify+0x29c/0xbbc net/ipv6/addrconf.c:-1
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     netif_close_many+0x368/0x51c net/core/dev.c:1829
     netif_close_many_and_unlock+0x38/0x15c net/core/dev.c:12425
     unregister_netdevice_many_notify+0x5a4/0x176c net/core/dev.c:12495
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
Call trace for netdevsim2[39] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     __qdisc_destroy+0x214/0x640 net/sched/sch_generic.c:1126
     qdisc_put+0x90/0x120 net/sched/sch_generic.c:1150
     dev_shutdown+0x2fc/0x368 net/sched/sch_generic.c:1515
     unregister_netdevice_many_notify+0xc08/0x176c net/core/dev.c:12519
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[40] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     netdevice_queue_work drivers/infiniband/core/roce_gid_mgmt.c:674 [inline]
     netdevice_event+0x424/0x7c0 drivers/infiniband/core/roce_gid_mgmt.c:822
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     unregister_netdevice_many_notify+0xf24/0x176c net/core/dev.c:12532
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[41] +1 at
     __dev_hold include/linux/netdevice.h:4527 [inline]
     netdev_hold include/linux/netdevice.h:4569 [inline]
     dev_hold include/linux/netdevice.h:4592 [inline]
     netdevice_queue_work drivers/infiniband/core/roce_gid_mgmt.c:675 [inline]
     netdevice_event+0x4b0/0x7c0 drivers/infiniband/core/roce_gid_mgmt.c:822
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     unregister_netdevice_many_notify+0xf24/0x176c net/core/dev.c:12532
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[42] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     neigh_parms_release+0x14c/0x204 net/core/neighbour.c:1812
     inetdev_destroy net/ipv4/devinet.c:335 [inline]
     inetdev_event+0x590/0x1184 net/ipv4/devinet.c:1655
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     unregister_netdevice_many_notify+0xf24/0x176c net/core/dev.c:12532
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[43] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     in_dev_finish_destroy+0xa0/0x1ac net/ipv4/devinet.c:258
     in_dev_put include/linux/inetdevice.h:290 [inline]
     inetdev_destroy net/ipv4/devinet.c:338 [inline]
     inetdev_event+0x5e0/0x1184 net/ipv4/devinet.c:1655
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     unregister_netdevice_many_notify+0xf24/0x176c net/core/dev.c:12532
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[44] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     neigh_parms_release+0x14c/0x204 net/core/neighbour.c:1812
     addrconf_ifdown+0xe14/0x11b4 net/ipv6/addrconf.c:4043
     addrconf_notify+0x29c/0xbbc net/ipv6/addrconf.c:-1
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     unregister_netdevice_many_notify+0xf24/0x176c net/core/dev.c:12532
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[45] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     in6_dev_finish_destroy+0xc8/0x1e0 net/ipv6/addrconf_core.c:176
     in6_dev_put include/net/addrconf.h:426 [inline]
     addrconf_ifdown+0xe64/0x11b4 net/ipv6/addrconf.c:4045
     addrconf_notify+0x29c/0xbbc net/ipv6/addrconf.c:-1
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     unregister_netdevice_many_notify+0xf24/0x176c net/core/dev.c:12532
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[46] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     dev_put include/linux/netdevice.h:4604 [inline]
     udp_tunnel_nic_unregister net/ipv4/udp_tunnel_nic.c:915 [inline]
     udp_tunnel_nic_netdevice_event+0xf34/0x1444 net/ipv4/udp_tunnel_nic.c:944
     notifier_call_chain+0x1a4/0x624 kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2275
     call_netdevice_notifiers_extack net/core/dev.c:2313 [inline]
     call_netdevice_notifiers net/core/dev.c:2327 [inline]
     unregister_netdevice_many_notify+0xf24/0x176c net/core/dev.c:12532
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[47] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     rx_queue_release+0x128/0x1b4 net/core/net-sysfs.c:1160
     kobject_cleanup lib/kobject.c:689 [inline]
     kobject_release lib/kobject.c:720 [inline]
     kref_put include/linux/kref.h:65 [inline]
     kobject_put+0x1dc/0x4b8 lib/kobject.c:737
     net_rx_queue_update_kobjects+0x5bc/0x67c net/core/net-sysfs.c:1317
     remove_queue_kobjects net/core/net-sysfs.c:2148 [inline]
     netdev_unregister_kobject+0xe8/0x39c net/core/net-sysfs.c:2304
     unregister_netdevice_many_notify+0x123c/0x176c net/core/dev.c:12565
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[48] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     netdev_queue_release+0x68/0xec net/core/net-sysfs.c:1910
     kobject_cleanup lib/kobject.c:689 [inline]
     kobject_release lib/kobject.c:720 [inline]
     kref_put include/linux/kref.h:65 [inline]
     kobject_put+0x1dc/0x4b8 lib/kobject.c:737
     netdev_queue_update_kobjects+0x510/0x5f0 net/core/net-sysfs.c:2052
     remove_queue_kobjects net/core/net-sysfs.c:2149 [inline]
     netdev_unregister_kobject+0xf8/0x39c net/core/net-sysfs.c:2304
     unregister_netdevice_many_notify+0x123c/0x176c net/core/dev.c:12565
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[49] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     unregister_netdevice_many_notify+0x1450/0x176c net/core/dev.c:12585
     unregister_netdevice_many net/core/dev.c:12603 [inline]
     unregister_netdevice_queue+0x274/0x30c net/core/dev.c:12404
     unregister_netdevice include/linux/netdevice.h:3492 [inline]
     nsim_destroy+0x248/0x5f8 drivers/net/netdevsim/netdev.c:1198
     __nsim_dev_port_del+0x13c/0x1ec drivers/net/netdevsim/dev.c:1472
     nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1486 [inline]
     nsim_dev_reload_destroy+0x13c/0x210 drivers/net/netdevsim/dev.c:1710
     nsim_dev_reload_down+0x9c/0xd0 drivers/net/netdevsim/dev.c:963
     devlink_reload+0x19c/0x64c net/devlink/dev.c:462
     devlink_pernet_pre_exit+0x1ac/0x30c net/devlink/core.c:578
     ops_pre_exit_list net/core/net_namespace.c:161 [inline]
     ops_undo_list+0x158/0x81c net/core/net_namespace.c:235
     cleanup_net+0x474/0x6c4 net/core/net_namespace.c:706
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[50] -1 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     __linkwatch_run_queue+0x538/0x79c net/core/link_watch.c:246
     linkwatch_event+0x58/0x68 net/core/link_watch.c:314
     process_one_work+0x850/0x1154 kernel/workqueue.c:3391
Call trace for netdevsim2[51] -2 at
     __dev_put include/linux/netdevice.h:4515 [inline]
     netdev_put include/linux/netdevice.h:4579 [inline]
     fib_nh_common_release+0x5c/0x268 net/ipv4/fib_semantics.c:204
     fib6_nh_release+0x1f8/0x20c net/ipv6/route.c:3740
     fib6_info_destroy_rcu+0xc8/0x20c net/ipv6/ip6_fib.c:177
     rcu_do_batch+0x36c/0xbb8 kernel/rcu/tree.c:2654
balance as of netdevsim2[51] is 1


Tested on:

commit:         5445d641 arm64: Don't read GMID_EL1 when MTE is disabled
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=1554fdf9580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=56ed23170c168d4c
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       Debian clang version 22.1.8 (++20260613092233+e80beda6e255-1~exp1~20260613092250.77), Debian LLD 22.1.8
userspace arch: arm64
patch:          https://syzkaller.appspot.com/x/patch.diff?x=16fd9901580000


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
       [not found] <FBE6DA28176D6E90+20260514115843.1655377-1-raoxu@uniontech.com>
@ 2026-05-14 12:28 ` syzbot
  0 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14 12:28 UTC (permalink / raw)
  To: linux-kernel, raoxu, syzkaller-bugs

Hello,

syzbot has tested the proposed patch but the reproducer is still triggering an issue:
unregister_netdevice: waiting for DEV to become free

unregister_netdevice: waiting for syz_tun to become free. Usage count = 8
ref_tracker: netdev@00000000adbd14c8 has 1/7 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4471 [inline]
     netdev_tracker_alloc include/linux/netdevice.h:4483 [inline]
     netdev_get_by_index+0x88/0xe0 net/core/dev.c:1027
     fib6_nh_init+0x258/0x14bc net/ipv6/route.c:3606
     ip6_route_info_create_nh+0x120/0x9a8 net/ipv6/route.c:3905
     ip6_route_add+0x8c/0x1b4 net/ipv6/route.c:3957
     addrconf_prefix_route+0x1f4/0x2b4 net/ipv6/addrconf.c:2488
     addrconf_add_linklocal+0x238/0x378 net/ipv6/addrconf.c:3313
     addrconf_addr_gen+0x27c/0x2e0 net/ipv6/addrconf.c:-1
     addrconf_init_auto_addrs+0x390/0x764 net/ipv6/addrconf.c:-1
     addrconf_notify+0x7a0/0xbe4 net/ipv6/addrconf.c:3752
     notifier_call_chain+0x194/0x60c kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2249
     call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
     call_netdevice_notifiers net/core/dev.c:2301 [inline]
     __dev_notify_flags+0x160/0x27c net/core/dev.c:9794
     netif_change_flags+0xd0/0x15c net/core/dev.c:9823
     do_setlink+0xab0/0x31c0 net/core/rtnetlink.c:3180
     rtnl_changelink net/core/rtnetlink.c:3799 [inline]
     __rtnl_newlink net/core/rtnetlink.c:3972 [inline]
     rtnl_newlink+0xd24/0x113c net/core/rtnetlink.c:4109

ref_tracker: netdev@00000000adbd14c8 has 1/7 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4471 [inline]
     netdev_tracker_alloc include/linux/netdevice.h:4483 [inline]
     netdev_get_by_index+0x88/0xe0 net/core/dev.c:1027
     fib6_nh_init+0x258/0x14bc net/ipv6/route.c:3606
     ip6_route_info_create_nh+0x120/0x9a8 net/ipv6/route.c:3905
     addrconf_f6i_alloc+0x1e4/0x3b4 net/ipv6/route.c:4697
     ipv6_add_addr+0x458/0xd70 net/ipv6/addrconf.c:1126
     addrconf_add_linklocal+0x1e0/0x378 net/ipv6/addrconf.c:3311
     addrconf_addr_gen+0x27c/0x2e0 net/ipv6/addrconf.c:-1
     addrconf_init_auto_addrs+0x390/0x764 net/ipv6/addrconf.c:-1
     addrconf_notify+0x7a0/0xbe4 net/ipv6/addrconf.c:3752
     notifier_call_chain+0x194/0x60c kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2249
     call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
     call_netdevice_notifiers net/core/dev.c:2301 [inline]
     __dev_notify_flags+0x160/0x27c net/core/dev.c:9794
     netif_change_flags+0xd0/0x15c net/core/dev.c:9823
     do_setlink+0xab0/0x31c0 net/core/rtnetlink.c:3180
     rtnl_changelink net/core/rtnetlink.c:3799 [inline]
     __rtnl_newlink net/core/rtnetlink.c:3972 [inline]
     rtnl_newlink+0xd24/0x113c net/core/rtnetlink.c:4109

ref_tracker: netdev@00000000adbd14c8 has 1/7 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4471 [inline]
     netdev_tracker_alloc include/linux/netdevice.h:4483 [inline]
     netdev_get_by_index+0x88/0xe0 net/core/dev.c:1027
     fib6_nh_init+0x258/0x14bc net/ipv6/route.c:3606
     ip6_route_info_create_nh+0x120/0x9a8 net/ipv6/route.c:3905
     ip6_route_add+0x8c/0x1b4 net/ipv6/route.c:3957
     addrconf_add_mroute+0x14c/0x1cc net/ipv6/addrconf.c:2552
     addrconf_add_dev+0xe8/0x1a0 net/ipv6/addrconf.c:2570
     addrconf_dev_config net/ipv6/addrconf.c:3484 [inline]
     addrconf_init_auto_addrs+0x304/0x764 net/ipv6/addrconf.c:3572
     addrconf_notify+0x7a0/0xbe4 net/ipv6/addrconf.c:3752
     notifier_call_chain+0x194/0x60c kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2249
     call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
     call_netdevice_notifiers net/core/dev.c:2301 [inline]
     __dev_notify_flags+0x160/0x27c net/core/dev.c:9794
     netif_change_flags+0xd0/0x15c net/core/dev.c:9823
     do_setlink+0xab0/0x31c0 net/core/rtnetlink.c:3180
     rtnl_changelink net/core/rtnetlink.c:3799 [inline]
     __rtnl_newlink net/core/rtnetlink.c:3972 [inline]
     rtnl_newlink+0xd24/0x113c net/core/rtnetlink.c:4109
     rtnetlink_rcv_msg+0x64c/0x984 net/core/rtnetlink.c:6995

ref_tracker: netdev@00000000adbd14c8 has 1/7 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4471 [inline]
     netdev_tracker_alloc include/linux/netdevice.h:4483 [inline]
     netdev_get_by_index+0x88/0xe0 net/core/dev.c:1027
     fib6_nh_init+0x258/0x14bc net/ipv6/route.c:3606
     ip6_route_info_create_nh+0x120/0x9a8 net/ipv6/route.c:3905
     ip6_route_add+0x8c/0x1b4 net/ipv6/route.c:3957
     addrconf_prefix_route+0x1f4/0x2b4 net/ipv6/addrconf.c:2488
     fixup_permanent_addr net/ipv6/addrconf.c:3603 [inline]
     addrconf_permanent_addr+0x5a8/0x824 net/ipv6/addrconf.c:3639
     addrconf_notify+0x690/0xbe4 net/ipv6/addrconf.c:3706
     notifier_call_chain+0x194/0x60c kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2249
     call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
     call_netdevice_notifiers net/core/dev.c:2301 [inline]
     __dev_notify_flags+0x160/0x27c net/core/dev.c:9794
     netif_change_flags+0xd0/0x15c net/core/dev.c:9823
     do_setlink+0xab0/0x31c0 net/core/rtnetlink.c:3180
     rtnl_changelink net/core/rtnetlink.c:3799 [inline]
     __rtnl_newlink net/core/rtnetlink.c:3972 [inline]
     rtnl_newlink+0xd24/0x113c net/core/rtnetlink.c:4109
     rtnetlink_rcv_msg+0x64c/0x984 net/core/rtnetlink.c:6995
     netlink_rcv_skb+0x22c/0x410 net/netlink/af_netlink.c:2550

ref_tracker: netdev@00000000adbd14c8 has 1/7 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4471 [inline]
     netdev_hold include/linux/netdevice.h:4500 [inline]
     fib_check_nh_nongw net/ipv4/fib_semantics.c:1261 [inline]
     fib_check_nh+0x968/0x1548 net/ipv4/fib_semantics.c:1281
     fib_create_info+0x13d8/0x2100 net/ipv4/fib_semantics.c:1501
     fib_table_insert+0xa4/0x11e8 net/ipv4/fib_trie.c:1212
     fib_magic+0x26c/0x344 net/ipv4/fib_frontend.c:1134
     fib_add_ifaddr+0x334/0x4e4 net/ipv4/fib_frontend.c:1178
     fib_netdev_event+0x35c/0x49c net/ipv4/fib_frontend.c:1516
     notifier_call_chain+0x194/0x60c kernel/notifier.c:85
     raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:453
     call_netdevice_notifiers_info+0xb8/0x120 net/core/dev.c:2249
     call_netdevice_notifiers_extack net/core/dev.c:2287 [inline]
     call_netdevice_notifiers net/core/dev.c:2301 [inline]
     __dev_notify_flags+0x160/0x27c net/core/dev.c:9794
     netif_change_flags+0xd0/0x15c net/core/dev.c:9823
     do_setlink+0xab0/0x31c0 net/core/rtnetlink.c:3180
     rtnl_changelink net/core/rtnetlink.c:3799 [inline]
     __rtnl_newlink net/core/rtnetlink.c:3972 [inline]
     rtnl_newlink+0xd24/0x113c net/core/rtnetlink.c:4109
     rtnetlink_rcv_msg+0x64c/0x984 net/core/rtnetlink.c:6995
     netlink_rcv_skb+0x22c/0x410 net/netlink/af_netlink.c:2550
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7022

ref_tracker: netdev@00000000adbd14c8 has 1/7 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4471 [inline]
     netdev_tracker_alloc include/linux/netdevice.h:4483 [inline]
     netdev_get_by_index+0x88/0xe0 net/core/dev.c:1027
     fib6_nh_init+0x258/0x14bc net/ipv6/route.c:3606
     ip6_route_info_create_nh+0x120/0x9a8 net/ipv6/route.c:3905
     addrconf_f6i_alloc+0x1e4/0x3b4 net/ipv6/route.c:4697
     ipv6_add_addr+0x458/0xd70 net/ipv6/addrconf.c:1126
     inet6_addr_add+0x2a4/0x78c net/ipv6/addrconf.c:3050
     inet6_rtm_newaddr+0x738/0xa58 net/ipv6/addrconf.c:5071
     rtnetlink_rcv_msg+0x64c/0x984 net/core/rtnetlink.c:6995
     netlink_rcv_skb+0x22c/0x410 net/netlink/af_netlink.c:2550
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7022
     netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]
     netlink_unicast+0x610/0x800 net/netlink/af_netlink.c:1344
     netlink_sendmsg+0x63c/0x920 net/netlink/af_netlink.c:1894
     sock_sendmsg_nosec net/socket.c:787 [inline]
     __sock_sendmsg+0xc8/0x138 net/socket.c:802
     __sys_sendto+0x254/0x338 net/socket.c:2265
     __do_sys_sendto net/socket.c:2272 [inline]
     __se_sys_sendto net/socket.c:2268 [inline]
     __arm64_sys_sendto+0xd8/0xf8 net/socket.c:2268
     __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
     invoke_syscall+0x98/0x244 arch/arm64/kernel/syscall.c:49

ref_tracker: netdev@00000000adbd14c8 has 1/7 users at
     __netdev_tracker_alloc include/linux/netdevice.h:4471 [inline]
     netdev_tracker_alloc+0x68/0xb0 include/linux/netdevice.h:4483
     fib_create_info+0x1b14/0x2100 net/ipv4/fib_semantics.c:1495
     fib_table_insert+0xa4/0x11e8 net/ipv4/fib_trie.c:1212
     fib_magic+0x26c/0x344 net/ipv4/fib_frontend.c:1134
     fib_add_ifaddr+0x118/0x4e4 net/ipv4/fib_frontend.c:1156
     fib_inetaddr_event+0x114/0x1c0 net/ipv4/fib_frontend.c:1470
     notifier_call_chain+0x194/0x60c kernel/notifier.c:85
     blocking_notifier_call_chain+0x70/0xa0 kernel/notifier.c:380
     __inet_insert_ifa+0x828/0xa0c net/ipv4/devinet.c:566
     inet_rtm_newaddr+0xb58/0x10e8 net/ipv4/devinet.c:1001
     rtnetlink_rcv_msg+0x64c/0x984 net/core/rtnetlink.c:6995
     netlink_rcv_skb+0x22c/0x410 net/netlink/af_netlink.c:2550
     rtnetlink_rcv+0x28/0x38 net/core/rtnetlink.c:7022
     netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]
     netlink_unicast+0x610/0x800 net/netlink/af_netlink.c:1344
     netlink_sendmsg+0x63c/0x920 net/netlink/af_netlink.c:1894
     sock_sendmsg_nosec net/socket.c:787 [inline]
     __sock_sendmsg+0xc8/0x138 net/socket.c:802



Tested on:

commit:         5cbb61bf arm64/fpsimd: ptrace: zero target's fpsimd_st..
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=15f620ec580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=a834c6344141a58b
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
userspace arch: arm64

Note: no patches were applied.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
       [not found] <FF91F2BF42AC95B3+20260514111238.1600030-1-raoxu@uniontech.com>
@ 2026-05-14 11:43 ` syzbot
  0 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14 11:43 UTC (permalink / raw)
  To: linux-kernel, raoxu, syzkaller-bugs

Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-by: syzbot+e2af46126e0644cbebdd@syzkaller.appspotmail.com
Tested-by: syzbot+e2af46126e0644cbebdd@syzkaller.appspotmail.com

Tested on:

commit:         5cbb61bf arm64/fpsimd: ptrace: zero target's fpsimd_st..
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=10eae996580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=a834c6344141a58b
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
userspace arch: arm64
patch:          https://syzkaller.appspot.com/x/patch.diff?x=1182da73980000

Note: testing is done by a robot and is best-effort only.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
       [not found] <BD680186E4DE6711+20260514082426.721996-1-raoxu@uniontech.com>
@ 2026-05-14  9:20 ` syzbot
  0 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  9:20 UTC (permalink / raw)
  To: linux-kernel, raoxu, syzkaller-bugs

Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-by: syzbot+e2af46126e0644cbebdd@syzkaller.appspotmail.com
Tested-by: syzbot+e2af46126e0644cbebdd@syzkaller.appspotmail.com

Tested on:

commit:         5cbb61bf arm64/fpsimd: ptrace: zero target's fpsimd_st..
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci
console output: https://syzkaller.appspot.com/x/log.txt?x=147a20ec580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=a834c6344141a58b
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
userspace arch: arm64
patch:          https://syzkaller.appspot.com/x/patch.diff?x=12255636580000

Note: testing is done by a robot and is best-effort only.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
       [not found] <E61E4EBE5175D344+20260514064805.611177-1-raoxu@uniontech.com>
@ 2026-05-14  7:30 ` syzbot
  0 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  7:30 UTC (permalink / raw)
  To: linux-kernel, raoxu, syzkaller-bugs

Hello,

syzbot tried to test the proposed patch but the build/boot failed:

failed to run ["make" "KERNELVERSION=syzkaller" "KERNELRELEASE=syzkaller" "LOCALVERSION=-syzkaller" "-j" "64" "ARCH=arm64" "CROSS_COMPILE=aarch64-linux-gnu-" "LLVM=1" "Image.gz"]: exit status 2


Tested on:

commit:         cc21150c Merge branch 'macsec-use-rcu_work-to-fix-cryp..
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main
kernel config:  https://syzkaller.appspot.com/x/.config?x=a834c6344141a58b
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
userspace arch: arm64

Note: no patches were applied.

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
       [not found] <113A84FF927506B4+20260514040220.410747-1-raoxu@uniontech.com>
@ 2026-05-14  5:36 ` syzbot
  0 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  5:36 UTC (permalink / raw)
  To: linux-kernel, raoxu, syzkaller-bugs

Hello,

syzbot tried to test the proposed patch but the build/boot failed:

failed to run ["make" "KERNELVERSION=syzkaller" "KERNELRELEASE=syzkaller" "LOCALVERSION=-syzkaller" "-j" "64" "ARCH=arm64" "CROSS_COMPILE=aarch64-linux-gnu-" "LLVM=1" "Image.gz"]: exit status 2


Tested on:

commit:         cc21150c Merge branch 'macsec-use-rcu_work-to-fix-cryp..
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main
kernel config:  https://syzkaller.appspot.com/x/.config?x=a834c6344141a58b
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8
userspace arch: arm64
patch:          https://syzkaller.appspot.com/x/patch.diff?x=15a90d6a580000


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
       [not found] <0CE6AE93FEBA21AC+20260514023628.308904-1-raoxu@uniontech.com>
@ 2026-05-14  2:45 ` syzbot
  0 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  2:45 UTC (permalink / raw)
  To: linux-kernel, raoxu, syzkaller-bugs

Hello,

syzbot tried to test the proposed patch but the build/boot failed:

failed to apply patch:
error: corrupt patch at line 24



Tested on:

commit:         cc21150c Merge branch 'macsec-use-rcu_work-to-fix-cryp..
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main
kernel config:  https://syzkaller.appspot.com/x/.config?x=a834c6344141a58b
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       
userspace arch: arm64
patch:          https://syzkaller.appspot.com/x/patch.diff?x=13458950580000


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
       [not found] <950831E2452101D8+20260514020809.275684-1-raoxu@uniontech.com>
@ 2026-05-14  2:17 ` syzbot
  0 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  2:17 UTC (permalink / raw)
  To: linux-kernel, raoxu, syzkaller-bugs

Hello,

syzbot tried to test the proposed patch but the build/boot failed:

failed to apply patch:
error: corrupt patch at line 24



Tested on:

commit:         b84c5632 net: net_failover: Fix the deadlock in slave ..
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main
kernel config:  https://syzkaller.appspot.com/x/.config?x=a834c6344141a58b
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       
userspace arch: arm64
patch:          https://syzkaller.appspot.com/x/patch.diff?x=15798950580000


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9)
       [not found] <B2CF7974DC914535+20260514015049.255578-1-raoxu@uniontech.com>
@ 2026-05-14  1:59 ` syzbot
  0 siblings, 0 replies; 20+ messages in thread
From: syzbot @ 2026-05-14  1:59 UTC (permalink / raw)
  To: linux-kernel, raoxu, syzkaller-bugs

Hello,

syzbot tried to test the proposed patch but the build/boot failed:

failed to apply patch:
error: corrupt patch at line 24



Tested on:

commit:         59afae20 selftests/tc-testing: Add QFQ/CBS qlen underf..
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git main
kernel config:  https://syzkaller.appspot.com/x/.config?x=a834c6344141a58b
dashboard link: https://syzkaller.appspot.com/bug?extid=e2af46126e0644cbebdd
compiler:       
userspace arch: arm64
patch:          https://syzkaller.appspot.com/x/patch.diff?x=14415636580000


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2026-09-15 12:56 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-10 20:18 [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
2026-05-14  1:51 ` Forwarded: [syzbot] test patch for unregister_netdevice syzbot
2026-05-14  2:08 ` Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices syzbot
2026-05-14  2:36 ` syzbot
2026-05-14  4:02 ` syzbot
2026-05-14  6:48 ` Forwarded: [syzbot] test net main baseline syzbot
2026-05-14  8:24 ` Forwarded: [syzbot] test [PATCH net v2] ipv6: addrconf: skip autoconf on unregistering devices syzbot
2026-05-14 11:12 ` Forwarded: [syzbot] test WARN_ON for addrconf " syzbot
2026-05-14 11:58 ` Forwarded: [syzbot] test baseline for unregister_netdevice ref leak syzbot
2026-09-15 12:14 ` [syzbot] [net?] unregister_netdevice: waiting for DEV to become free (9) syzbot
2026-09-15 12:29 ` Forwarded: " syzbot
     [not found] <B2CF7974DC914535+20260514015049.255578-1-raoxu@uniontech.com>
2026-05-14  1:59 ` syzbot
     [not found] <950831E2452101D8+20260514020809.275684-1-raoxu@uniontech.com>
2026-05-14  2:17 ` syzbot
     [not found] <0CE6AE93FEBA21AC+20260514023628.308904-1-raoxu@uniontech.com>
2026-05-14  2:45 ` syzbot
     [not found] <113A84FF927506B4+20260514040220.410747-1-raoxu@uniontech.com>
2026-05-14  5:36 ` syzbot
     [not found] <E61E4EBE5175D344+20260514064805.611177-1-raoxu@uniontech.com>
2026-05-14  7:30 ` syzbot
     [not found] <BD680186E4DE6711+20260514082426.721996-1-raoxu@uniontech.com>
2026-05-14  9:20 ` syzbot
     [not found] <FF91F2BF42AC95B3+20260514111238.1600030-1-raoxu@uniontech.com>
2026-05-14 11:43 ` syzbot
     [not found] <FBE6DA28176D6E90+20260514115843.1655377-1-raoxu@uniontech.com>
2026-05-14 12:28 ` syzbot
     [not found] <0d52ff78-4135-4761-a54a-d80ecfe1d88e@I-love.SAKURA.ne.jp>
2026-09-15 12:56 ` syzbot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®