================================================================== BUG: KCSAN: data-race in wg_packet_send_staged_packets / wg_packet_send_staged_packets write to 0xffff88812896bb28 of 4 bytes by interrupt on cpu 1: wg_cpumask_next_online drivers/net/wireguard/queueing.h:130 [inline] wg_queue_enqueue_per_device_and_peer drivers/net/wireguard/queueing.h:173 [inline] wg_packet_create_data drivers/net/wireguard/send.c:320 [inline] wg_packet_send_staged_packets+0x6f9/0xae0 drivers/net/wireguard/send.c:388 wg_packet_send_keepalive+0xe2/0x100 drivers/net/wireguard/send.c:239 wg_expired_send_persistent_keepalive+0x3c/0x50 drivers/net/wireguard/timers.c:141 call_timer_fn+0x3a/0x300 kernel/time/timer.c:1793 expire_timers kernel/time/timer.c:1844 [inline] __run_timers kernel/time/timer.c:2418 [inline] __run_timer_base+0x417/0x640 kernel/time/timer.c:2429 run_timer_base kernel/time/timer.c:2438 [inline] run_timer_softirq+0x31/0x70 kernel/time/timer.c:2448 __do_softirq+0xc8/0x285 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu kernel/softirq.c:633 [inline] irq_exit_rcu+0x3c/0x90 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x73/0x80 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 native_safe_halt arch/x86/include/asm/irqflags.h:48 [inline] arch_safe_halt arch/x86/include/asm/irqflags.h:86 [inline] acpi_safe_halt+0x21/0x30 drivers/acpi/processor_idle.c:112 acpi_idle_do_entry+0x1d/0x30 drivers/acpi/processor_idle.c:573 acpi_idle_enter+0x96/0xb0 drivers/acpi/processor_idle.c:707 cpuidle_enter_state+0xcf/0x270 drivers/cpuidle/cpuidle.c:267 cpuidle_enter+0x40/0x70 drivers/cpuidle/cpuidle.c:388 call_cpuidle kernel/sched/idle.c:155 [inline] cpuidle_idle_call kernel/sched/idle.c:236 [inline] do_idle+0x195/0x230 kernel/sched/idle.c:332 cpu_startup_entry+0x25/0x30 kernel/sched/idle.c:430 start_secondary+0x94/0xa0 arch/x86/kernel/smpboot.c:313 common_startup_64+0x12c/0x137 read to 0xffff88812896bb28 of 4 bytes by interrupt on cpu 0: wg_cpumask_next_online drivers/net/wireguard/queueing.h:127 [inline] wg_queue_enqueue_per_device_and_peer drivers/net/wireguard/queueing.h:173 [inline] wg_packet_create_data drivers/net/wireguard/send.c:320 [inline] wg_packet_send_staged_packets+0x614/0xae0 drivers/net/wireguard/send.c:388 wg_packet_send_keepalive+0xe2/0x100 drivers/net/wireguard/send.c:239 wg_expired_send_persistent_keepalive+0x3c/0x50 drivers/net/wireguard/timers.c:141 call_timer_fn+0x3a/0x300 kernel/time/timer.c:1793 expire_timers kernel/time/timer.c:1844 [inline] __run_timers kernel/time/timer.c:2418 [inline] __run_timer_base+0x417/0x640 kernel/time/timer.c:2429 run_timer_base kernel/time/timer.c:2438 [inline] run_timer_softirq+0x31/0x70 kernel/time/timer.c:2448 __do_softirq+0xc8/0x285 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu kernel/softirq.c:633 [inline] irq_exit_rcu+0x3c/0x90 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x73/0x80 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 avc_search_node security/selinux/avc.c:532 [inline] avc_lookup security/selinux/avc.c:560 [inline] avc_has_perm_noaudit+0xa5/0x210 security/selinux/avc.c:1154 selinux_inode_permission+0x2d6/0x420 security/selinux/hooks.c:3124 security_inode_permission+0x6e/0xb0 security/security.c:2216 inode_permission+0xbf/0x300 fs/namei.c:536 may_lookup fs/namei.c:1718 [inline] link_path_walk+0x15e/0x810 fs/namei.c:2273 path_parentat fs/namei.c:2532 [inline] __filename_parentat+0x13c/0x3c0 fs/namei.c:2556 filename_parentat fs/namei.c:2574 [inline] do_unlinkat+0x9b/0x4c0 fs/namei.c:4374 __do_sys_unlink fs/namei.c:4447 [inline] __se_sys_unlink fs/namei.c:4445 [inline] __x64_sys_unlink+0x30/0x40 fs/namei.c:4445 x64_sys_call+0x286b/0x2d30 arch/x86/include/generated/asm/syscalls_64.h:88 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcd/0x1d0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f value changed: 0x00000001 -> 0x00000000 Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 6036 Comm: syz-executor.0 Tainted: G W 6.9.0-rc3-syzkaller-00365-g399f4dae683a #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 ==================================================================