================================================================== BUG: KCSAN: data-race in __queue_work / wq_worker_running read-write to 0xffff888237c2abe0 of 4 bytes by task 34 on cpu 0: wq_worker_running+0x96/0xe0 kernel/workqueue.c:880 schedule_timeout+0xc1/0x290 kernel/time/timer.c:2167 schedule_timeout_uninterruptible kernel/time/timer.c:2201 [inline] msleep+0x57/0x70 kernel/time/timer.c:2322 nsim_fib6_rt_add drivers/net/netdevsim/fib.c:693 [inline] nsim_fib6_rt_insert drivers/net/netdevsim/fib.c:759 [inline] nsim_fib6_event drivers/net/netdevsim/fib.c:856 [inline] nsim_fib_event drivers/net/netdevsim/fib.c:889 [inline] nsim_fib_event_work+0x2776/0x2c30 drivers/net/netdevsim/fib.c:1492 process_one_work+0x3d3/0x720 kernel/workqueue.c:2289 process_scheduled_works kernel/workqueue.c:2352 [inline] worker_thread+0x7cf/0xa70 kernel/workqueue.c:2438 kthread+0x1a9/0x1e0 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308 read to 0xffff888237c2abe0 of 4 bytes by task 3220 on cpu 1: __need_more_worker kernel/workqueue.c:785 [inline] insert_work kernel/workqueue.c:1365 [inline] __queue_work+0x79e/0xa60 kernel/workqueue.c:1517 queue_work_on+0x7e/0xe0 kernel/workqueue.c:1545 nsim_fib_event_nb+0xc2a/0xd70 drivers/net/netdevsim/fib.c:1043 notifier_call_chain kernel/notifier.c:87 [inline] atomic_notifier_call_chain+0x63/0xd0 kernel/notifier.c:225 call_fib_notifiers+0x62/0x90 net/core/fib_notifier.c:35 call_fib6_notifiers+0x2e/0x40 net/ipv6/fib6_notifier.c:22 call_fib6_entry_notifiers net/ipv6/ip6_fib.c:401 [inline] fib6_add_rt2node net/ipv6/ip6_fib.c:1223 [inline] fib6_add+0xeff/0x1fb0 net/ipv6/ip6_fib.c:1477 __ip6_ins_rt net/ipv6/route.c:1302 [inline] ip6_ins_rt+0x74/0xb0 net/ipv6/route.c:1312 __ipv6_ifa_notify+0x36f/0x8a0 net/ipv6/addrconf.c:6157 ipv6_ifa_notify net/ipv6/addrconf.c:6196 [inline] addrconf_dad_completed+0xdd/0x8c0 net/ipv6/addrconf.c:4209 addrconf_dad_work+0x85e/0xb80 process_one_work+0x3d3/0x720 kernel/workqueue.c:2289 worker_thread+0x618/0xa70 kernel/workqueue.c:2436 kthread+0x1a9/0x1e0 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308 value changed: 0x00000000 -> 0x00000001 Reported by Kernel Concurrency Sanitizer on: CPU: 1 PID: 3220 Comm: kworker/1:6 Not tainted 6.2.0-rc6-syzkaller-00050-g9f266ccaa2f5-dirty #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/12/2023 Workqueue: ipv6_addrconf addrconf_dad_work ================================================================== IPv6: ADDRCONF(NETDEV_CHANGE): vxcan1: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): vxcan0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth1: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_bridge: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): bridge_slave_0: link becomes ready bridge0: port 1(bridge_slave_0) entered blocking state bridge0: port 1(bridge_slave_0) entered forwarding state IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_bridge: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): bridge_slave_1: link becomes ready bridge0: port 2(bridge_slave_1) entered blocking state bridge0: port 2(bridge_slave_1) entered forwarding state IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_bond: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_bond: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_team: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): team_slave_0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_team: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): team_slave_1: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_hsr: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): hsr_slave_0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth1_to_hsr: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): hsr_slave_1: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): bridge0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): team0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): hsr0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_bridge: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): bridge_slave_0: link becomes ready bridge0: port 1(bridge_slave_0) entered blocking state bridge0: port 1(bridge_slave_0) entered forwarding state IPv6: ADDRCONF(NETDEV_CHANGE): macvlan0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth1_virt_wifi: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0_virt_wifi: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): batadv_slave_0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0_to_batadv: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth1_vlan: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): veth0_vlan: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): vlan0: link becomes ready IPv6: ADDRCONF(NETDEV_CHANGE): vlan1: link becomes ready