================================================================== BUG: KCSAN: data-race in wq_worker_tick / wq_worker_tick read-write to 0xffff88810006ceb8 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+0x32/0x80 arch/x86/kernel/apic/apic.c:1049 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 __tsan_unaligned_write8+0x12/0x180 kernel/kcsan/core.c:1025 native_save_fl arch/x86/include/asm/irqflags.h:19 [inline] arch_local_save_flags arch/x86/include/asm/irqflags.h:87 [inline] arch_local_irq_save arch/x86/include/asm/irqflags.h:123 [inline] __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:108 [inline] _raw_spin_lock_irqsave+0x28/0xb0 kernel/locking/spinlock.c:162 ref_tracker_free+0xbb/0x410 lib/ref_tracker.c:243 netdev_tracker_free include/linux/netdevice.h:4082 [inline] netdev_put include/linux/netdevice.h:4099 [inline] dst_destroy+0x9e/0x350 net/core/dst.c:114 dst_destroy_rcu+0x19/0x20 net/core/dst.c:132 rcu_do_batch kernel/rcu/tree.c:2567 [inline] rcu_core+0x57b/0xbc0 kernel/rcu/tree.c:2823 rcu_core_si+0xd/0x20 kernel/rcu/tree.c:2840 handle_softirqs+0xbf/0x280 kernel/softirq.c:554 do_softirq+0x5e/0x90 kernel/softirq.c:455 __local_bh_enable_ip+0x6e/0x70 kernel/softirq.c:382 __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:167 [inline] _raw_spin_unlock_bh+0x36/0x40 kernel/locking/spinlock.c:210 spin_unlock_bh include/linux/spinlock.h:396 [inline] nsim_dev_trap_report drivers/net/netdevsim/dev.c:820 [inline] nsim_dev_trap_report_work+0x4d8/0x5b0 drivers/net/netdevsim/dev.c:851 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 0xffff88810006ceb8 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+0x32/0x80 arch/x86/kernel/apic/apic.c:1049 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] ref_tracker_free+0x2b4/0x410 lib/ref_tracker.c:270 netdev_tracker_free include/linux/netdevice.h:4082 [inline] netdev_put include/linux/netdevice.h:4099 [inline] dst_destroy+0x9e/0x350 net/core/dst.c:114 dst_destroy_rcu+0x19/0x20 net/core/dst.c:132 rcu_do_batch kernel/rcu/tree.c:2567 [inline] rcu_core+0x57b/0xbc0 kernel/rcu/tree.c:2823 rcu_core_si+0xd/0x20 kernel/rcu/tree.c:2840 handle_softirqs+0xbf/0x280 kernel/softirq.c:554 do_softirq+0x5e/0x90 kernel/softirq.c:455 __local_bh_enable_ip+0x6e/0x70 kernel/softirq.c:382 __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:167 [inline] _raw_spin_unlock_bh+0x36/0x40 kernel/locking/spinlock.c:210 spin_unlock_bh include/linux/spinlock.h:396 [inline] nsim_dev_trap_report drivers/net/netdevsim/dev.c:820 [inline] nsim_dev_trap_report_work+0x4d8/0x5b0 drivers/net/netdevsim/dev.c:851 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: 0x000000000020ce70 -> 0x000000000020f580 Reported by Kernel Concurrency Sanitizer on: CPU: 1 UID: 0 PID: 5065 Comm: kworker/u8:23 Tainted: G W 6.12.0-rc4-syzkaller-00281-g284a2f899676 #0 Tainted: [W]=WARN Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: events_unbound nsim_dev_trap_report_work ==================================================================