From: jouni.hogander@unikie.com (Jouni Högander)
To: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: syzbot <syzbot+30209ea299c09d8785c9@syzkaller.appspotmail.com>,
YueHaibing <yuehaibing@huawei.com>, Julian Anastasov <ja@ssi.bg>,
ddstreet@ieee.org, dvyukov@google.com,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
syzkaller-bugs@googlegroups.com, Hulk Robot <hulkci@huawei.com>,
"David S. Miller" <davem@davemloft.net>,
Lukas Bulwahn <lukas.bulwahn@gmail.com>
Subject: Re: unregister_netdevice: waiting for DEV to become free (2)
Date: Fri, 29 Nov 2019 08:51:19 +0200 [thread overview]
Message-ID: <87eexrqioo.fsf@unikie.com> (raw)
In-Reply-To: <ace19af4-7cae-babd-bac5-cd3505dcd874@I-love.SAKURA.ne.jp> (Tetsuo Handa's message of "Thu, 28 Nov 2019 18:56:21 +0900")
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> writes:
> Hello people involved in commit a3e23f719f5c4a38 ("net-sysfs: call dev_hold if kobject_init_and_add success")
> and commit b8eb718348b8fb30 ("net-sysfs: Fix reference count leak in rx|netdev_queue_add_kobject").
>
> syzbot is reporting that unregister_netdevice() hangs due to underflowing
> device refcount when kobject_init_and_add() failed due to -ENOMEM.
>
> ----------
> 11:25:02 executing program 3 (fault-call:5 fault-nth:2):
> r0 = openat$tun(0xffffffffffffff9c, &(0x7f0000000100)='/dev/net/tun\x00', 0x0, 0x0)
> ioctl$TUNSETIFF(r0, 0x400454ca, &(0x7f0000000000)={'vet\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbdh\x00', 0x43732e5398416f1a})
> ioctl$TUNSETQUEUE(r0, 0x400454d9, &(0x7f00000000c0)={'\x00', 0x400})
> r1 = openat$tun(0xffffffffffffff9c, &(0x7f0000000080)='/dev/net/tun\x00', 0x0, 0x0)
> ioctl$TUNSETIFF(r1, 0x400454ca, &(0x7f0000000000)={'vet\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbdh\x00', 0x43732e5398416f1a})
> ioctl$TUNSETQUEUE(r0, 0x400454d9, &(0x7f0000000040)={'lo\x00', 0x200})
> ----------
>
> ----------
> [ 60.043899] IPVS: ftp: loaded support on port[0] = 21
> [ 60.275782] chnl_net:caif_netlink_parms(): no params data found
> [ 60.305039] bridge0: port 1(bridge_slave_0) entered blocking state
> [ 60.305551] bridge0: port 1(bridge_slave_0) entered disabled state
> [ 60.306366] device bridge_slave_0 entered promiscuous mode
> [ 60.311776] bridge0: port 2(bridge_slave_1) entered blocking state
> [ 60.312032] bridge0: port 2(bridge_slave_1) entered disabled state
> [ 60.312858] device bridge_slave_1 entered promiscuous mode
> [ 60.336705] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
> [ 60.338321] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
> [ 60.357851] team0: Port device team_slave_0 added
> [ 60.359250] team0: Port device team_slave_1 added
> [ 60.522829] device hsr_slave_0 entered promiscuous mode
> [ 60.651798] device hsr_slave_1 entered promiscuous mode
> [ 60.790287] netdevsim netdevsim0 netdevsim0: renamed from eth0
> [ 60.854953] netdevsim netdevsim0 netdevsim1: renamed from eth1
> [ 60.911733] netdevsim netdevsim0 netdevsim2: renamed from eth2
> [ 60.974063] netdevsim netdevsim0 netdevsim3: renamed from eth3
> [ 61.109590] bridge0: port 2(bridge_slave_1) entered blocking state
> [ 61.109922] bridge0: port 2(bridge_slave_1) entered forwarding state
> [ 61.110384] bridge0: port 1(bridge_slave_0) entered blocking state
> [ 61.110556] bridge0: port 1(bridge_slave_0) entered forwarding state
> [ 61.151643] 8021q: adding VLAN 0 to HW filter on device bond0
> [ 61.156692] IPv6: ADDRCONF(NETDEV_CHANGE): veth0: link becomes ready
> [ 61.164101] bridge0: port 1(bridge_slave_0) entered disabled state
> [ 61.190521] bridge0: port 2(bridge_slave_1) entered disabled state
> [ 61.230466] IPv6: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready
> [ 61.283759] 8021q: adding VLAN 0 to HW filter on device team0
> [ 61.364323] IPv6: ADDRCONF(NETDEV_CHANGE): bridge_slave_0: link becomes ready
> [ 61.366383] bridge0: port 1(bridge_slave_0) entered blocking state
> [ 61.366568] bridge0: port 1(bridge_slave_0) entered forwarding state
> [ 61.367033] IPv6: ADDRCONF(NETDEV_CHANGE): bridge_slave_1: link becomes ready
> [ 61.367556] bridge0: port 2(bridge_slave_1) entered blocking state
> [ 61.367727] bridge0: port 2(bridge_slave_1) entered forwarding state
> [ 61.372342] IPv6: ADDRCONF(NETDEV_CHANGE): team_slave_0: link becomes ready
> [ 61.377760] IPv6: ADDRCONF(NETDEV_CHANGE): team_slave_1: link becomes ready
> [ 61.381755] IPv6: ADDRCONF(NETDEV_CHANGE): hsr_slave_0: link becomes ready
> [ 61.383474] IPv6: ADDRCONF(NETDEV_CHANGE): hsr_slave_1: link becomes ready
> [ 61.386511] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
> [ 61.405483] 8021q: adding VLAN 0 to HW filter on device batadv0
> [ 61.408968] IPv6: ADDRCONF(NETDEV_CHANGE): team0: link becomes ready
> [ 61.412478] IPv6: ADDRCONF(NETDEV_CHANGE): vxcan1: link becomes ready
> [ 61.414712] IPv6: ADDRCONF(NETDEV_CHANGE): vxcan0: link becomes ready
> [ 61.466051] FAULT_INJECTION: forcing a failure.
> name failslab, interval 1, probability 0, space 0, times 1
> [ 61.468544] CPU: 6 PID: 6365 Comm: syz-executor Not tainted 5.4.0+ #223
> [ 61.469778] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/29/2019
> [ 61.473052] Call Trace:
> [ 61.475277] dump_stack+0x163/0x1d5
> [ 61.476597] should_fail+0x655/0x740
> [ 61.477847] ? fault_create_debugfs_attr+0x170/0x170
> [ 61.479192] ? ___might_sleep+0x1de/0x500
> [ 61.480520] __should_failslab+0xde/0x130
> [ 61.481834] should_failslab+0x9/0x14
> [ 61.483145] kmem_cache_alloc+0x28e/0x770
> [ 61.484448] ? memcpy+0x45/0x50
> [ 61.486397] ? kstrdup+0x59/0x70
> [ 61.488702] __kernfs_new_node+0xde/0x6f0
> [ 61.490999] ? kernfs_dop_revalidate+0x380/0x380
> [ 61.493038] ? __put_user_ns+0x60/0x60
> [ 61.495621] ? mark_lock+0x11f/0xc60
> [ 61.497768] ? put_dec+0xc0/0xc0
> [ 61.499926] kernfs_new_node+0x97/0x110
> [ 61.501971] kernfs_create_dir_ns+0x4d/0x150
> [ 61.504019] sysfs_create_dir_ns+0x13b/0x2a0
> [ 61.505973] ? sysfs_create_mount_point+0xb0/0xb0
> [ 61.507978] ? rwlock_bug.part.2+0x90/0x90
> [ 61.509917] ? lock_acquire+0x19f/0x3f0
> [ 61.511893] ? __kasan_check_read+0x11/0x20
> [ 61.513887] ? do_raw_spin_unlock+0x54/0x260
> [ 61.515829] kobject_add_internal+0x223/0x9a0
> [ 61.517825] kobject_init_and_add+0xff/0x170
> [ 61.519811] ? kset_create_and_add+0x180/0x180
> [ 61.521849] ? lock_acquire+0x19f/0x3f0
> [ 61.523865] ? rtnl_lock+0x17/0x20
> [ 61.525787] netdev_queue_update_kobjects+0xeb/0x370
> [ 61.527816] netif_set_real_num_tx_queues+0x188/0x740
> [ 61.530219] ? mutex_lock_io_nested+0x14b0/0x14b0
> [ 61.532255] tun_attach+0x4bd/0x1250
> [ 61.534231] ? lock_acquire+0x19f/0x3f0
> [ 61.536130] __tun_chr_ioctl+0x6fd/0x3b50
> [ 61.537960] ? tun_flow_update+0xba0/0xba0
> [ 61.539709] ? __kasan_check_read+0x11/0x20
> [ 61.541376] ? mark_lock+0x11f/0xc60
> [ 61.543057] ? _kstrtoull+0x11c/0x1c0
> [ 61.544725] ? __kasan_check_read+0x11/0x20
> [ 61.546556] ? __lock_acquire+0xc5c/0x3b30
> [ 61.548282] ? __kasan_check_read+0x11/0x20
> [ 61.550033] ? mark_lock+0x11f/0xc60
> [ 61.551749] ? __kasan_check_read+0x11/0x20
> [ 61.553502] ? __lock_acquire+0xc5c/0x3b30
> [ 61.555247] ? __fget+0x31c/0x4d0
> [ 61.556976] ? tun_chr_compat_ioctl+0x50/0x50
> [ 61.558743] tun_chr_ioctl+0x2a/0x40
> [ 61.560255] ? tun_chr_ioctl+0x2a/0x40
> [ 61.562490] do_vfs_ioctl+0x1a2/0x1150
> [ 61.564138] ? rcu_read_lock_held+0x9c/0xb0
> [ 61.565830] ? ioctl_preallocate+0x1e0/0x1e0
> [ 61.567495] ? __fget+0x33e/0x4d0
> [ 61.569168] ? do_dup2+0x4d0/0x4d0
> [ 61.570928] ? fput_many+0xe6/0x150
> [ 61.572618] ? fput+0x1a/0x20
> [ 61.574382] ? security_file_ioctl+0x81/0xb0
> [ 61.576049] ksys_ioctl+0x94/0xb0
> [ 61.577783] __x64_sys_ioctl+0x73/0xb0
> [ 61.579526] do_syscall_64+0xde/0x6c0
> [ 61.581302] entry_SYSCALL_64_after_hwframe+0x49/0xbe
> [ 61.583010] RIP: 0033:0x45a729
> [ 61.584734] Code: bd b1 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 8b b1 fb ff c3 66 2e 0f 1f 84 00 00 00 00
> [ 61.590407] RSP: 002b:00007f25d540ec88 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [ 61.592488] RAX: ffffffffffffffda RBX: 000000000071bf00 RCX: 000000000045a729
> [ 61.594552] RDX: 0000000020000040 RSI: 00000000400454d9 RDI: 0000000000000003
> [ 61.596829] RBP: 00007f25d540eca0 R08: 0000000000000000 R09: 0000000000000000
> [ 61.598540] R10: 0000000000000000 R11: 0000000000000246 R12: 00007f25d540f6d4
> [ 61.600278] R13: 00000000004ac5a5 R14: 00000000006ee8a0 R15: 0000000000000005
> [ 61.655323] kobject_add_internal failed for tx-1 (error: -12 parent: queues)
> [ 71.760970] unregister_netdevice: waiting for vet to become free. Usage count = -1
> [ 82.028434] unregister_netdevice: waiting for vet to become free. Usage count = -1
> [ 92.140031] unregister_netdevice: waiting for vet to become free. Usage count = -1
> ----------
>
> Worrisome part is that tun_attach() calls tun_set_real_num_queues() at the end of tun_attach()
> but tun_set_real_num_queues() is not handling netif_set_real_num_tx_queues() failure.
> That is, tun_attach() is returning success even if netdev_queue_update_kobjects() from
> netif_set_real_num_tx_queues() failed.
>
> static void tun_set_real_num_queues(struct tun_struct *tun)
> {
> netif_set_real_num_tx_queues(tun->dev, tun->numqueues);
> netif_set_real_num_rx_queues(tun->dev, tun->numqueues);
> }
>
> And I guess that ignoring that failure causes clean-up function to drop a refcount
> which was not held by initialization function. Applying below diff seems to avoid
> this problem. Please check.
>
> ----------
> diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
> index ae3bcb1540ec..562d06c274aa 100644
> --- a/net/core/net-sysfs.c
> +++ b/net/core/net-sysfs.c
> @@ -1459,14 +1459,14 @@ static int netdev_queue_add_kobject(struct net_device *dev, int index)
> struct kobject *kobj = &queue->kobj;
> int error = 0;
>
> + dev_hold(queue->dev);
> +
> kobj->kset = dev->queues_kset;
> error = kobject_init_and_add(kobj, &netdev_queue_ktype, NULL,
> "tx-%u", index);
> if (error)
> goto err;
>
> - dev_hold(queue->dev);
> -
> #ifdef CONFIG_BQL
> error = sysfs_create_group(kobj, &dql_group);
> if (error)
I think this is workaround for the issue you pointed out above. I'll
guess we need to implement proper error handling for
netif_set_real_num_tx_queues to avoid this regression. I was a bit concerned
there is something relying netdev_queue_add_kobject and
rx_queue_add_kobject not freeing the reference. This was
it... Reproducer here would help.
> ----------
>
> ----------
> [ 64.482925] IPVS: ftp: loaded support on port[0] = 21
> [ 64.684701] chnl_net:caif_netlink_parms(): no params data found
> [ 64.757440] bridge0: port 1(bridge_slave_0) entered blocking state
> [ 64.757596] bridge0: port 1(bridge_slave_0) entered disabled state
> [ 64.760043] device bridge_slave_0 entered promiscuous mode
> [ 64.761799] bridge0: port 2(bridge_slave_1) entered blocking state
> [ 64.762025] bridge0: port 2(bridge_slave_1) entered disabled state
> [ 64.793334] device bridge_slave_1 entered promiscuous mode
> [ 64.818373] bond0: (slave bond_slave_0): Enslaving as an active interface with an up link
> [ 64.822950] bond0: (slave bond_slave_1): Enslaving as an active interface with an up link
> [ 64.843403] team0: Port device team_slave_0 added
> [ 64.844859] team0: Port device team_slave_1 added
> [ 64.933830] device hsr_slave_0 entered promiscuous mode
> [ 64.972990] device hsr_slave_1 entered promiscuous mode
> [ 65.048057] netdevsim netdevsim0 netdevsim0: renamed from eth0
> [ 65.113612] netdevsim netdevsim0 netdevsim1: renamed from eth1
> [ 65.191758] netdevsim netdevsim0 netdevsim2: renamed from eth2
> [ 65.262611] netdevsim netdevsim0 netdevsim3: renamed from eth3
> [ 65.339507] bridge0: port 2(bridge_slave_1) entered blocking state
> [ 65.339821] bridge0: port 2(bridge_slave_1) entered forwarding state
> [ 65.340340] bridge0: port 1(bridge_slave_0) entered blocking state
> [ 65.340514] bridge0: port 1(bridge_slave_0) entered forwarding state
> [ 65.486729] 8021q: adding VLAN 0 to HW filter on device bond0
> [ 65.545043] IPv6: ADDRCONF(NETDEV_CHANGE): veth0: link becomes ready
> [ 65.567266] bridge0: port 1(bridge_slave_0) entered disabled state
> [ 65.592695] bridge0: port 2(bridge_slave_1) entered disabled state
> [ 65.631471] IPv6: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready
> [ 65.656557] 8021q: adding VLAN 0 to HW filter on device team0
> [ 65.660768] IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_bridge: link becomes ready
> [ 65.661411] IPv6: ADDRCONF(NETDEV_CHANGE): bridge_slave_0: link becomes ready
> [ 65.661949] bridge0: port 1(bridge_slave_0) entered blocking state
> [ 65.662127] bridge0: port 1(bridge_slave_0) entered forwarding state
> [ 65.693984] IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_bridge: link becomes ready
> [ 65.697297] IPv6: ADDRCONF(NETDEV_CHANGE): bridge_slave_1: link becomes ready
> [ 65.701488] bridge0: port 2(bridge_slave_1) entered blocking state
> [ 65.703895] bridge0: port 2(bridge_slave_1) entered forwarding state
> [ 65.706370] IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_bond: link becomes ready
> [ 65.724296] hsr0: Slave A (hsr_slave_0) is not up; please bring it up to get a fully working HSR network
> [ 65.728690] hsr0: Slave B (hsr_slave_1) is not up; please bring it up to get a fully working HSR network
> [ 65.777203] IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_bond: link becomes ready
> [ 65.782476] IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_team: link becomes ready
> [ 65.785989] IPv6: ADDRCONF(NETDEV_CHANGE): team_slave_0: link becomes ready
> [ 65.789006] IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_team: link becomes ready
> [ 65.796973] IPv6: ADDRCONF(NETDEV_CHANGE): team_slave_1: link becomes ready
> [ 65.801313] IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_hsr: link becomes ready
> [ 65.804748] IPv6: ADDRCONF(NETDEV_CHANGE): hsr_slave_0: link becomes ready
> [ 65.807939] IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_hsr: link becomes ready
> [ 65.811874] IPv6: ADDRCONF(NETDEV_CHANGE): hsr_slave_1: link becomes ready
> [ 65.814814] IPv6: ADDRCONF(NETDEV_CHANGE): team0: link becomes ready
> [ 65.824311] IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready
> [ 65.835888] 8021q: adding VLAN 0 to HW filter on device batadv0
> [ 65.840711] IPv6: ADDRCONF(NETDEV_CHANGE): vxcan1: link becomes ready
> [ 65.843289] IPv6: ADDRCONF(NETDEV_CHANGE): vxcan0: link becomes ready
> [ 66.055083] FAULT_INJECTION: forcing a failure.
> name failslab, interval 1, probability 0, space 0, times 1
> [ 66.058933] CPU: 1 PID: 6375 Comm: syz-executor Not tainted 5.4.0+ #224
> [ 66.060904] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/29/2019
> [ 66.065868] Call Trace:
> [ 66.068993] dump_stack+0x163/0x1d5
> [ 66.071611] should_fail+0x655/0x740
> [ 66.074082] ? fault_create_debugfs_attr+0x170/0x170
> [ 66.076772] ? ___might_sleep+0x1de/0x500
> [ 66.079324] __should_failslab+0xde/0x130
> [ 66.082540] should_failslab+0x9/0x14
> [ 66.084806] kmem_cache_alloc+0x28e/0x770
> [ 66.087262] ? memcpy+0x45/0x50
> [ 66.089712] ? kstrdup+0x59/0x70
> [ 66.092133] __kernfs_new_node+0xde/0x6f0
> [ 66.094512] ? kernfs_dop_revalidate+0x380/0x380
> [ 66.096934] ? __put_user_ns+0x60/0x60
> [ 66.099303] ? mark_lock+0x11f/0xc60
> [ 66.101585] ? put_dec+0xc0/0xc0
> [ 66.104388] kernfs_new_node+0x97/0x110
> [ 66.106537] kernfs_create_dir_ns+0x4d/0x150
> [ 66.108622] sysfs_create_dir_ns+0x13b/0x2a0
> [ 66.110584] ? sysfs_create_mount_point+0xb0/0xb0
> [ 66.112769] ? rwlock_bug.part.2+0x90/0x90
> [ 66.114866] ? lock_acquire+0x19f/0x3f0
> [ 66.116925] ? __kasan_check_read+0x11/0x20
> [ 66.118888] ? do_raw_spin_unlock+0x54/0x260
> [ 66.120909] kobject_add_internal+0x223/0x9a0
> [ 66.122835] kobject_init_and_add+0xff/0x170
> [ 66.124860] ? kset_create_and_add+0x180/0x180
> [ 66.126944] ? lock_acquire+0x19f/0x3f0
> [ 66.129143] ? rtnl_lock+0x17/0x20
> [ 66.131087] netdev_queue_update_kobjects+0x118/0x390
> [ 66.133028] ? __kasan_check_read+0x11/0x20
> [ 66.134944] netif_set_real_num_tx_queues+0x188/0x740
> [ 66.137012] ? mutex_lock_io_nested+0x14b0/0x14b0
> [ 66.139043] tun_attach+0x4bd/0x1250
> [ 66.140950] ? lock_acquire+0x19f/0x3f0
> [ 66.142870] __tun_chr_ioctl+0x6fd/0x3b50
> [ 66.144724] ? tun_flow_update+0xba0/0xba0
> [ 66.146532] ? __kasan_check_read+0x11/0x20
> [ 66.148821] ? mark_lock+0x11f/0xc60
> [ 66.150635] ? _kstrtoull+0x11c/0x1c0
> [ 66.152399] ? __kasan_check_read+0x11/0x20
> [ 66.154056] ? __lock_acquire+0xc5c/0x3b30
> [ 66.155701] ? __kasan_check_read+0x11/0x20
> [ 66.157438] ? mark_lock+0x11f/0xc60
> [ 66.159265] ? __kasan_check_read+0x11/0x20
> [ 66.161032] ? __lock_acquire+0xc5c/0x3b30
> [ 66.162885] ? __fget+0x31c/0x4d0
> [ 66.164619] ? tun_chr_compat_ioctl+0x50/0x50
> [ 66.166104] tun_chr_ioctl+0x2a/0x40
> [ 66.167538] ? tun_chr_ioctl+0x2a/0x40
> [ 66.169199] do_vfs_ioctl+0x1a2/0x1150
> [ 66.170969] ? rcu_read_lock_held+0x9c/0xb0
> [ 66.172735] ? ioctl_preallocate+0x1e0/0x1e0
> [ 66.174487] ? __fget+0x33e/0x4d0
> [ 66.176170] ? do_dup2+0x4d0/0x4d0
> [ 66.177866] ? fput_many+0xe6/0x150
> [ 66.179520] ? fput+0x1a/0x20
> [ 66.181176] ? security_file_ioctl+0x81/0xb0
> [ 66.182909] ksys_ioctl+0x94/0xb0
> [ 66.184452] __x64_sys_ioctl+0x73/0xb0
> [ 66.186169] do_syscall_64+0xde/0x6c0
> [ 66.187908] entry_SYSCALL_64_after_hwframe+0x49/0xbe
> [ 66.189678] RIP: 0033:0x45a729
> [ 66.191328] Code: bd b1 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 8b b1 fb ff c3 66 2e 0f 1f 84 00 00 00 00
> [ 66.196839] RSP: 002b:00007f08f9987c88 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> [ 66.198849] RAX: ffffffffffffffda RBX: 000000000071bf00 RCX: 000000000045a729
> [ 66.200876] RDX: 0000000020000040 RSI: 00000000400454d9 RDI: 0000000000000003
> [ 66.202947] RBP: 00007f08f9987ca0 R08: 0000000000000000 R09: 0000000000000000
> [ 66.204491] R10: 0000000000000000 R11: 0000000000000246 R12: 00007f08f99886d4
> [ 66.205688] R13: 00000000004ac5a5 R14: 00000000006ee8a0 R15: 0000000000000005
> [ 66.277453] kobject_add_internal failed for tx-1 (error: -12 parent: queues)
> [ 67.499501] syz-executor (6368) used greatest stack depth: 23704 bytes left
> [ 70.237146] tipc: TX() has been purged, node left!
> [ 75.794671] device bridge_slave_1 left promiscuous mode
> [ 75.797354] bridge0: port 2(bridge_slave_1) entered disabled state
> [ 75.861863] device bridge_slave_0 left promiscuous mode
> [ 75.864646] bridge0: port 1(bridge_slave_0) entered disabled state
> [ 79.752910] device hsr_slave_0 left promiscuous mode
> [ 79.841067] device hsr_slave_1 left promiscuous mode
> [ 79.939879] team0 (unregistering): Port device team_slave_1 removed
> [ 79.963767] team0 (unregistering): Port device team_slave_0 removed
> [ 79.985156] bond0 (unregistering): (slave bond_slave_1): Releasing backup interface
> [ 80.090348] bond0 (unregistering): (slave bond_slave_0): Releasing backup interface
> [ 80.352617] bond0 (unregistering): Released all slaves
> ----------
next prev parent reply other threads:[~2019-11-29 6:51 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-15 18:50 unregister_netdevice: waiting for DEV to become free (2) syzbot
2018-08-15 20:28 ` syzbot
2018-08-15 20:41 ` Dmitry Vyukov
2018-08-20 4:31 ` syzbot
2018-08-20 12:55 ` Julian Anastasov
2018-08-21 5:40 ` Cong Wang
2018-08-22 4:11 ` Julian Anastasov
2019-04-15 13:36 ` Tetsuo Handa
2019-04-15 15:35 ` David Ahern
2019-04-21 20:41 ` Stephen Suryaputra
2019-04-22 14:58 ` David Ahern
2019-04-22 16:04 ` Eric Dumazet
2019-04-22 16:09 ` Eric Dumazet
2019-04-16 14:00 ` Tetsuo Handa
2019-04-26 13:43 ` Tetsuo Handa
2019-04-27 17:16 ` David Ahern
2019-04-27 22:33 ` Tetsuo Handa
2019-04-27 23:52 ` Eric Dumazet
2019-04-28 4:22 ` Tetsuo Handa
2019-04-28 15:04 ` Eric Dumazet
2019-04-29 18:34 ` David Ahern
2019-04-29 18:43 ` David Ahern
2019-05-01 13:38 ` Tetsuo Handa
2019-05-01 14:52 ` David Ahern
2019-05-01 16:16 ` Tetsuo Handa
2019-05-04 14:52 ` [PATCH] ipv4: Delete uncached routes upon unregistration of loopback device Tetsuo Handa
2019-05-04 15:56 ` Eric Dumazet
2019-05-04 17:09 ` Tetsuo Handa
2019-05-04 17:24 ` Eric Dumazet
2019-05-04 20:13 ` Julian Anastasov
2019-11-28 9:56 ` unregister_netdevice: waiting for DEV to become free (2) Tetsuo Handa
2019-11-29 5:54 ` Lukas Bulwahn
2019-11-29 6:51 ` Jouni Högander [this message]
2019-12-05 10:00 ` Jouni Högander
2019-12-05 11:00 ` Tetsuo Handa
2019-12-16 11:12 ` Tetsuo Handa
2019-12-17 7:08 ` Jouni Högander
2019-10-11 10:14 ` Tetsuo Handa
2019-10-11 15:12 ` Alexei Starovoitov
2019-10-16 10:34 ` Toke Høiland-Jørgensen
2019-11-15 9:43 ` Tetsuo Handa
2019-11-21 11:36 ` Toke Høiland-Jørgensen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87eexrqioo.fsf@unikie.com \
--to=jouni.hogander@unikie.com \
--cc=davem@davemloft.net \
--cc=ddstreet@ieee.org \
--cc=dvyukov@google.com \
--cc=hulkci@huawei.com \
--cc=ja@ssi.bg \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas.bulwahn@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=syzbot+30209ea299c09d8785c9@syzkaller.appspotmail.com \
--cc=syzkaller-bugs@googlegroups.com \
--cc=yuehaibing@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.