================================================================== BUG: KCSAN: data-race in kick_pool / wq_worker_running read-write to 0xffff888237d29d24 of 4 bytes by task 23 on cpu 1: wq_worker_running+0x95/0x120 kernel/workqueue.c:1400 schedule_timeout+0xb7/0x170 kernel/time/sleep_timeout.c:99 schedule_timeout_uninterruptible kernel/time/sleep_timeout.c:158 [inline] msleep+0x50/0x90 kernel/time/sleep_timeout.c:318 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+0x1ebc/0x21a0 drivers/net/netdevsim/fib.c:1493 process_one_work kernel/workqueue.c:3238 [inline] process_scheduled_works+0x4ce/0x9d0 kernel/workqueue.c:3321 worker_thread+0x582/0x770 kernel/workqueue.c:3402 kthread+0x486/0x510 kernel/kthread.c:464 ret_from_fork+0xda/0x150 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 read to 0xffff888237d29d24 of 4 bytes by interrupt on cpu 0: need_more_worker kernel/workqueue.c:934 [inline] kick_pool+0x49/0x2d0 kernel/workqueue.c:1240 __queue_work+0x8d6/0xb60 kernel/workqueue.c:2342 queue_work_on+0xd1/0x160 kernel/workqueue.c:2392 wg_queue_enqueue_per_device_and_peer drivers/net/wireguard/queueing.h:176 [inline] wg_packet_create_data drivers/net/wireguard/send.c:320 [inline] wg_packet_send_staged_packets+0x83d/0xab0 drivers/net/wireguard/send.c:388 wg_packet_send_keepalive+0xeb/0x100 drivers/net/wireguard/send.c:239 wg_expired_send_persistent_keepalive+0x3c/0x50 drivers/net/wireguard/timers.c:144 call_timer_fn+0x38/0x2c0 kernel/time/timer.c:1747 expire_timers kernel/time/timer.c:1798 [inline] __run_timers kernel/time/timer.c:2372 [inline] __run_timer_base+0x415/0x610 kernel/time/timer.c:2384 run_timer_base kernel/time/timer.c:2393 [inline] run_timer_softirq+0x31/0x70 kernel/time/timer.c:2403 handle_softirqs+0xba/0x290 kernel/softirq.c:579 __do_softirq kernel/softirq.c:613 [inline] invoke_softirq kernel/softirq.c:453 [inline] __irq_exit_rcu+0x3a/0xc0 kernel/softirq.c:680 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline] sysvec_apic_timer_interrupt+0x74/0x80 arch/x86/kernel/apic/apic.c:1050 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 __sanitizer_cov_trace_pc+0x5d/0x70 kernel/kcov.c:233 arch_static_branch arch/x86/include/asm/jump_label.h:36 [inline] page_fixed_fake_head include/linux/page-flags.h:206 [inline] _compound_head include/linux/page-flags.h:284 [inline] free_pages_and_swap_cache+0xec/0x400 mm/swap_state.c:255 __tlb_batch_free_encoded_pages mm/mmu_gather.c:136 [inline] tlb_batch_pages_flush mm/mmu_gather.c:149 [inline] tlb_flush_mmu_free mm/mmu_gather.c:397 [inline] tlb_flush_mmu+0x2dc/0x450 mm/mmu_gather.c:404 tlb_finish_mmu+0x8d/0x110 mm/mmu_gather.c:497 exit_mmap+0x2fe/0x6c0 mm/mmap.c:1297 __mmput+0x28/0x1c0 kernel/fork.c:1121 mmput+0x40/0x50 kernel/fork.c:1144 exit_mm+0xe4/0x190 kernel/exit.c:581 do_exit+0x417/0x1590 kernel/exit.c:952 do_group_exit+0xff/0x140 kernel/exit.c:1105 get_signal+0xe59/0xf70 kernel/signal.c:3034 arch_do_signal_or_restart+0x96/0x480 arch/x86/kernel/signal.c:337 exit_to_user_mode_loop+0x7a/0x100 kernel/entry/common.c:111 exit_to_user_mode_prepare include/linux/entry-common.h:330 [inline] syscall_exit_to_user_mode_work include/linux/entry-common.h:414 [inline] syscall_exit_to_user_mode include/linux/entry-common.h:449 [inline] do_syscall_64+0x1d6/0x200 arch/x86/entry/syscall_64.c:100 entry_SYSCALL_64_after_hwframe+0x77/0x7f value changed: 0x00000000 -> 0x00000001 Reported by Kernel Concurrency Sanitizer on: CPU: 0 UID: 0 PID: 32162 Comm: syz.6.9433 Tainted: G W 6.16.0-rc3-syzkaller-00072-gee88bddf7f2f #0 PREEMPT(voluntary) Tainted: [W]=WARN Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025 ==================================================================