================================================================== BUG: KCSAN: data-race in wg_packet_send_staged_packets / wg_packet_send_staged_packets read to 0xffff888022fd1a48 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:153 [inline] wg_packet_create_data drivers/net/wireguard/send.c:326 [inline] wg_packet_send_staged_packets+0x592/0x990 drivers/net/wireguard/send.c:396 wg_packet_send_keepalive+0xea/0x100 drivers/net/wireguard/send.c:239 wg_expired_send_persistent_keepalive+0x38/0x50 drivers/net/wireguard/timers.c:141 call_timer_fn+0x2e/0x240 kernel/time/timer.c:1410 expire_timers+0x116/0x260 kernel/time/timer.c:1455 __run_timers+0x328/0x3c0 kernel/time/timer.c:1747 run_timer_softirq+0x19/0x30 kernel/time/timer.c:1760 __do_softirq+0x12c/0x2b1 kernel/softirq.c:298 asm_call_irq_on_stack+0xf/0x20 __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline] run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline] do_softirq_own_stack+0x32/0x40 arch/x86/kernel/irq_64.c:77 invoke_softirq kernel/softirq.c:393 [inline] __irq_exit_rcu+0xb2/0xc0 kernel/softirq.c:423 sysvec_apic_timer_interrupt+0x74/0x90 arch/x86/kernel/apic/apic.c:1091 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:631 should_watch kernel/kcsan/core.c:265 [inline] check_access kernel/kcsan/core.c:631 [inline] __tsan_read8+0x150/0x180 kernel/kcsan/core.c:842 find_va_links mm/vmalloc.c:551 [inline] insert_vmap_area+0x84/0x220 mm/vmalloc.c:707 alloc_vmap_area+0x1109/0x1280 mm/vmalloc.c:1226 __get_vm_area_node+0x165/0x240 mm/vmalloc.c:2080 __vmalloc_node_range+0xb7/0x4f0 mm/vmalloc.c:2553 alloc_thread_stack_node kernel/fork.c:244 [inline] dup_task_struct+0x46d/0x800 kernel/fork.c:864 copy_process+0x3d1/0x2e70 kernel/fork.c:1938 kernel_clone+0x14b/0x680 kernel/fork.c:2456 __do_sys_clone kernel/fork.c:2573 [inline] __se_sys_clone kernel/fork.c:2557 [inline] __x64_sys_clone+0xc8/0xf0 kernel/fork.c:2557 do_syscall_64+0x39/0x80 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xa9 write to 0xffff888022fd1a48 of 4 bytes by interrupt on cpu 0: wg_cpumask_next_online drivers/net/wireguard/queueing.h:134 [inline] wg_queue_enqueue_per_device_and_peer drivers/net/wireguard/queueing.h:153 [inline] wg_packet_create_data drivers/net/wireguard/send.c:326 [inline] wg_packet_send_staged_packets+0x5d5/0x990 drivers/net/wireguard/send.c:396 wg_packet_send_keepalive+0xea/0x100 drivers/net/wireguard/send.c:239 wg_expired_send_persistent_keepalive+0x38/0x50 drivers/net/wireguard/timers.c:141 call_timer_fn+0x2e/0x240 kernel/time/timer.c:1410 expire_timers+0x116/0x260 kernel/time/timer.c:1455 __run_timers+0x328/0x3c0 kernel/time/timer.c:1747 run_timer_softirq+0x19/0x30 kernel/time/timer.c:1760 __do_softirq+0x12c/0x2b1 kernel/softirq.c:298 asm_call_irq_on_stack+0xf/0x20 __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline] run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline] do_softirq_own_stack+0x32/0x40 arch/x86/kernel/irq_64.c:77 invoke_softirq kernel/softirq.c:393 [inline] __irq_exit_rcu+0xb2/0xc0 kernel/softirq.c:423 sysvec_apic_timer_interrupt+0x74/0x90 arch/x86/kernel/apic/apic.c:1091 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:631 write_comp_data kernel/kcov.c:240 [inline] __sanitizer_cov_trace_const_cmp8+0x8c/0x90 kernel/kcov.c:291 compound_head include/linux/page-flags.h:187 [inline] PageAnon include/linux/page-flags.h:484 [inline] page_remove_rmap+0x3d/0x2f0 mm/rmap.c:1330 zap_pte_range+0x5af/0x13c0 mm/memory.c:1253 zap_pmd_range mm/memory.c:1357 [inline] zap_pud_range mm/memory.c:1386 [inline] zap_p4d_range mm/memory.c:1407 [inline] unmap_page_range+0x560/0x660 mm/memory.c:1428 unmap_single_vma+0x157/0x210 mm/memory.c:1473 unmap_vmas+0xbf/0x150 mm/memory.c:1505 exit_mmap+0x1c7/0x3b0 mm/mmap.c:3222 __mmput+0xa2/0x220 kernel/fork.c:1079 mmput+0x38/0x40 kernel/fork.c:1100 exit_mm+0x2bd/0x320 kernel/exit.c:483 do_exit+0x3c2/0x15a0 kernel/exit.c:793 do_group_exit+0xc8/0x170 kernel/exit.c:903 get_signal+0xf9b/0x1510 kernel/signal.c:2758 arch_do_signal+0x25/0x260 arch/x86/kernel/signal.c:811 exit_to_user_mode_loop kernel/entry/common.c:161 [inline] exit_to_user_mode_prepare+0xde/0x170 kernel/entry/common.c:191 syscall_exit_to_user_mode+0x16/0x30 kernel/entry/common.c:266 do_syscall_64+0x45/0x80 arch/x86/entry/common.c:56 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 22473 Comm: syz-executor.1 Not tainted 5.10.0-rc2-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 ==================================================================