syzbot


KCSAN: data-race in cleanup_net / unregister_netdevice_many_notify

Status: auto-obsoleted due to no activity on 2025/06/26 14:35
Subsystems: net
[Documentation on labels]
Reported-by: syzbot+939b362607c192d07eeb@syzkaller.appspotmail.com
First crash: 78d, last: 78d

Sample crash report:
==================================================================
BUG: KCSAN: data-race in cleanup_net / unregister_netdevice_many_notify

write to 0xffffffff88fcf3d8 of 8 bytes by task 1021 on cpu 0:
 cleanup_net+0x83e/0x880 net/core/net_namespace.c:679
 process_one_work kernel/workqueue.c:3238 [inline]
 process_scheduled_works+0x4cb/0x9d0 kernel/workqueue.c:3319
 worker_thread+0x582/0x770 kernel/workqueue.c:3400
 kthread+0x486/0x510 kernel/kthread.c:464
 ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:153
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

read to 0xffffffff88fcf3d8 of 8 bytes by task 18118 on cpu 1:
 from_cleanup_net net/core/dev.c:10408 [inline]
 synchronize_net net/core/dev.c:11831 [inline]
 unregister_netdevice_many_notify+0x79c/0x16a0 net/core/dev.c:11963
 unregister_netdevice_many net/core/dev.c:12046 [inline]
 unregister_netdevice_queue+0x1f5/0x220 net/core/dev.c:11889
 unregister_netdevice include/linux/netdevice.h:3374 [inline]
 nsim_destroy+0xf4/0x360 drivers/net/netdevsim/netdev.c:1064
 __nsim_dev_port_del+0xcf/0x110 drivers/net/netdevsim/dev.c:1428
 nsim_dev_port_del_all drivers/net/netdevsim/dev.c:1440 [inline]
 nsim_dev_reload_destroy+0x1a3/0x2c0 drivers/net/netdevsim/dev.c:1661
 nsim_dev_reload_down+0x67/0x80 drivers/net/netdevsim/dev.c:968
 devlink_reload+0xaa/0x580 net/devlink/dev.c:461
 devlink_nl_reload_doit+0x772/0x8f0 net/devlink/dev.c:584
 genl_family_rcv_msg_doit+0x140/0x1b0 net/netlink/genetlink.c:1115
 genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
 genl_rcv_msg+0x422/0x460 net/netlink/genetlink.c:1210
 netlink_rcv_skb+0x120/0x220 net/netlink/af_netlink.c:2534
 genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219
 netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline]
 netlink_unicast+0x59e/0x670 net/netlink/af_netlink.c:1339
 netlink_sendmsg+0x58b/0x6b0 net/netlink/af_netlink.c:1883
 sock_sendmsg_nosec net/socket.c:712 [inline]
 __sock_sendmsg+0x142/0x180 net/socket.c:727
 ____sys_sendmsg+0x31e/0x4e0 net/socket.c:2566
 ___sys_sendmsg+0x17b/0x1d0 net/socket.c:2620
 __sys_sendmsg net/socket.c:2652 [inline]
 __do_sys_sendmsg net/socket.c:2657 [inline]
 __se_sys_sendmsg net/socket.c:2655 [inline]
 __x64_sys_sendmsg+0xd4/0x160 net/socket.c:2655
 x64_sys_call+0x2999/0x2fb0 arch/x86/include/generated/asm/syscalls_64.h:47
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd0/0x1a0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0xffff88810210c200 -> 0x0000000000000000

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 18118 Comm: syz.0.4736 Not tainted 6.15.0-rc4-syzkaller-00052-g4f79eaa2ceac #0 PREEMPT(voluntary) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/19/2025
==================================================================
netdevsim netdevsim0 eth3 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 eth2 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 eth1 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 eth0 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 eth0: set [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 eth1: set [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 eth2: set [1, 0] type 2 family 0 port 6081 - 0
netdevsim netdevsim0 eth3: set [1, 0] type 2 family 0 port 6081 - 0

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/05/01 14:34 upstream 4f79eaa2ceac 51b137cd .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in cleanup_net / unregister_netdevice_many_notify
* Struck through repros no longer work on HEAD.