================================================================== BUG: KCSAN: data-race in wg_packet_send_staged_packets / wg_packet_send_staged_packets read to 0xffff88816d055b28 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:1792 expire_timers kernel/time/timer.c:1843 [inline] __run_timers kernel/time/timer.c:2408 [inline] __run_timer_base+0x417/0x640 kernel/time/timer.c:2419 run_timer_base kernel/time/timer.c:2428 [inline] run_timer_softirq+0x31/0x70 kernel/time/timer.c:2438 __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 kcsan_setup_watchpoint+0x404/0x410 kernel/kcsan/core.c:705 percpu_counter_add include/linux/percpu_counter.h:71 [inline] add_mm_counter include/linux/mm.h:2599 [inline] set_pte_range+0x278/0x670 mm/memory.c:4679 filemap_map_order0_folio mm/filemap.c:3557 [inline] filemap_map_pages+0x581/0x900 mm/filemap.c:3603 do_fault_around mm/memory.c:4850 [inline] do_read_fault mm/memory.c:4883 [inline] do_fault mm/memory.c:5022 [inline] do_pte_missing mm/memory.c:3878 [inline] handle_pte_fault mm/memory.c:5298 [inline] __handle_mm_fault mm/memory.c:5439 [inline] handle_mm_fault+0x1060/0x27e0 mm/memory.c:5604 do_user_addr_fault arch/x86/mm/fault.c:1362 [inline] handle_page_fault arch/x86/mm/fault.c:1505 [inline] exc_page_fault+0x3eb/0x6d0 arch/x86/mm/fault.c:1563 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 write to 0xffff88816d055b28 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:1792 expire_timers kernel/time/timer.c:1843 [inline] __run_timers kernel/time/timer.c:2408 [inline] __run_timer_base+0x417/0x640 kernel/time/timer.c:2419 run_timer_base kernel/time/timer.c:2428 [inline] run_timer_softirq+0x31/0x70 kernel/time/timer.c:2438 __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 value changed: 0x00000001 -> 0x00000000 Reported by Kernel Concurrency Sanitizer on: CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.8.0-syzkaller-13161-gbfa8f18691ed #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/29/2024 ==================================================================