================================================================== BUG: KCSAN: data-race in wg_packet_send_staged_packets / wg_packet_send_staged_packets read to 0xffff88815cf95b28 of 4 bytes by interrupt on cpu 1: 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 __preempt_count_dec_and_test arch/x86/include/asm/preempt.h:94 [inline] __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:152 [inline] _raw_spin_unlock_irqrestore+0x3d/0x60 kernel/locking/spinlock.c:194 spin_unlock_irqrestore include/linux/spinlock.h:406 [inline] __wake_up_common_lock kernel/sched/wait.c:108 [inline] __wake_up+0x88/0xb0 kernel/sched/wait.c:127 io_cqring_wake io_uring/io_uring.h:283 [inline] io_cq_unlock_post io_uring/io_uring.c:665 [inline] __io_cqring_overflow_flush+0x3cc/0x430 io_uring/io_uring.c:714 io_cqring_do_overflow_flush io_uring/io_uring.c:722 [inline] io_cqring_wait io_uring/io_uring.c:2675 [inline] __do_sys_io_uring_enter io_uring/io_uring.c:3708 [inline] __se_sys_io_uring_enter+0x1434/0x1820 io_uring/io_uring.c:3598 __x64_sys_io_uring_enter+0x78/0x90 io_uring/io_uring.c:3598 do_syscall_64+0xd3/0x1d0 entry_SYSCALL_64_after_hwframe+0x72/0x7a write to 0xffff88815cf95b28 of 4 bytes by interrupt on cpu 0: 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 kcsan_setup_watchpoint+0x404/0x410 kernel/kcsan/core.c:705 io_cqe_cache_refill io_uring/io_uring.c:835 [inline] io_get_cqe_overflow io_uring/io_uring.h:167 [inline] __io_cqring_overflow_flush+0x243/0x430 io_uring/io_uring.c:701 io_cqring_do_overflow_flush io_uring/io_uring.c:722 [inline] io_cqring_wait io_uring/io_uring.c:2675 [inline] __do_sys_io_uring_enter io_uring/io_uring.c:3708 [inline] __se_sys_io_uring_enter+0x1434/0x1820 io_uring/io_uring.c:3598 __x64_sys_io_uring_enter+0x78/0x90 io_uring/io_uring.c:3598 do_syscall_64+0xd3/0x1d0 entry_SYSCALL_64_after_hwframe+0x72/0x7a value changed: 0x00000000 -> 0x00000001 Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 13919 Comm: syz-executor.3 Tainted: G W 6.9.0-rc2-syzkaller-00002-g026e680b0a08 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 ================================================================== GRED: Unable to relocate VQ 0x0 after dequeue, screwing up backlog GRED: Unable to relocate VQ 0x0 after dequeue, screwing up backlog GRED: Unable to relocate VQ 0x0 after dequeue, screwing up backlog