================================================================== BUG: KCSAN: data-race in wq_worker_tick / wq_worker_tick read-write to 0xffff888107e39cb8 of 8 bytes by interrupt on cpu 1: wq_worker_tick+0x63/0x240 kernel/workqueue.c:1474 sched_tick+0xd2/0x110 kernel/sched/core.c:5622 update_process_times+0x15a/0x180 kernel/time/timer.c:2524 tick_sched_handle kernel/time/tick-sched.c:276 [inline] tick_nohz_handler+0x250/0x2d0 kernel/time/tick-sched.c:297 __run_hrtimer kernel/time/hrtimer.c:1691 [inline] __hrtimer_run_queues+0x20d/0x5e0 kernel/time/hrtimer.c:1755 hrtimer_interrupt+0x210/0x7b0 kernel/time/hrtimer.c:1817 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1038 [inline] __sysvec_apic_timer_interrupt+0x5c/0x1d0 arch/x86/kernel/apic/apic.c:1055 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1049 [inline] sysvec_apic_timer_interrupt+0x6e/0x80 arch/x86/kernel/apic/apic.c:1049 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 check_access kernel/kcsan/core.c:750 [inline] __tsan_read4+0xd3/0x180 kernel/kcsan/core.c:1024 ndisc_hashfn include/net/ndisc.h:363 [inline] ___neigh_lookup_noref include/net/neighbour.h:306 [inline] __ipv6_neigh_lookup_noref include/net/ndisc.h:368 [inline] ip6_finish_output2+0x4ed/0xd20 net/ipv6/ip6_output.c:128 ip6_finish_output+0x438/0x540 net/ipv6/ip6_output.c:226 NF_HOOK_COND include/linux/netfilter.h:303 [inline] ip6_output+0xf5/0x230 net/ipv6/ip6_output.c:247 dst_output include/net/dst.h:450 [inline] ip6_local_out+0x76/0xd0 net/ipv6/output_core.c:155 ip6tunnel_xmit include/net/ip6_tunnel.h:161 [inline] udp_tunnel6_xmit_skb+0x333/0x470 net/ipv6/ip6_udp_tunnel.c:111 send6+0x2ff/0x3c0 drivers/net/wireguard/socket.c:152 wg_socket_send_skb_to_peer+0xbd/0x130 drivers/net/wireguard/socket.c:178 wg_socket_send_buffer_to_peer+0xd6/0x100 drivers/net/wireguard/socket.c:200 wg_packet_send_handshake_initiation drivers/net/wireguard/send.c:40 [inline] wg_packet_handshake_send_worker+0x10c/0x150 drivers/net/wireguard/send.c:51 process_one_work kernel/workqueue.c:3229 [inline] process_scheduled_works+0x483/0x9a0 kernel/workqueue.c:3310 worker_thread+0x51d/0x6f0 kernel/workqueue.c:3391 kthread+0x1d1/0x210 kernel/kthread.c:389 ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 read-write to 0xffff888107e39cb8 of 8 bytes by interrupt on cpu 0: wq_worker_tick+0x63/0x240 kernel/workqueue.c:1474 sched_tick+0xd2/0x110 kernel/sched/core.c:5622 update_process_times+0x15a/0x180 kernel/time/timer.c:2524 tick_sched_handle kernel/time/tick-sched.c:276 [inline] tick_nohz_handler+0x250/0x2d0 kernel/time/tick-sched.c:297 __run_hrtimer kernel/time/hrtimer.c:1691 [inline] __hrtimer_run_queues+0x20d/0x5e0 kernel/time/hrtimer.c:1755 hrtimer_interrupt+0x210/0x7b0 kernel/time/hrtimer.c:1817 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1038 [inline] __sysvec_apic_timer_interrupt+0x5c/0x1d0 arch/x86/kernel/apic/apic.c:1055 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1049 [inline] sysvec_apic_timer_interrupt+0x6e/0x80 arch/x86/kernel/apic/apic.c:1049 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 unwind_done arch/x86/kernel/unwind_orc.c:365 [inline] unwind_get_return_address+0x5/0x30 arch/x86/kernel/unwind_orc.c:366 arch_stack_walk+0xfd/0x150 arch/x86/kernel/stacktrace.c:26 stack_trace_save+0x61/0x90 kernel/stacktrace.c:122 ref_tracker_alloc+0x10f/0x2f0 lib/ref_tracker.c:209 __netdev_tracker_alloc include/linux/netdevice.h:4062 [inline] netdev_hold include/linux/netdevice.h:4091 [inline] dst_init+0xac/0x260 net/core/dst.c:52 dst_alloc+0xe2/0x100 net/core/dst.c:93 rt_dst_alloc net/ipv4/route.c:1612 [inline] __mkroute_output net/ipv4/route.c:2573 [inline] ip_route_output_key_hash_rcu+0xb90/0x12d0 net/ipv4/route.c:2795 ip_route_output_key_hash net/ipv4/route.c:2624 [inline] __ip_route_output_key include/net/route.h:141 [inline] ip_route_output_flow+0x76/0x120 net/ipv4/route.c:2852 send4+0x1f5/0x530 drivers/net/wireguard/socket.c:61 wg_socket_send_skb_to_peer+0x94/0x130 drivers/net/wireguard/socket.c:175 wg_socket_send_buffer_to_peer+0xd6/0x100 drivers/net/wireguard/socket.c:200 wg_packet_send_handshake_initiation drivers/net/wireguard/send.c:40 [inline] wg_packet_handshake_send_worker+0x10c/0x150 drivers/net/wireguard/send.c:51 process_one_work kernel/workqueue.c:3229 [inline] process_scheduled_works+0x483/0x9a0 kernel/workqueue.c:3310 worker_thread+0x51d/0x6f0 kernel/workqueue.c:3391 kthread+0x1d1/0x210 kernel/kthread.c:389 ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 value changed: 0x0000000000000000 -> 0x0000000000002710 Reported by Kernel Concurrency Sanitizer on: CPU: 0 UID: 0 PID: 28 Comm: kworker/u8:1 Not tainted 6.12.0-rc7-syzkaller-00012-g3022e9d00ebe #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: wg-kex-wg0 wg_packet_handshake_send_worker ==================================================================