================================================================== BUG: KCSAN: data-race in random_recv_done / virtio_read write to 0xffff888100a3d0cc of 4 bytes by task 6033 on cpu 0: request_entropy drivers/char/hw_random/virtio-rng.c:56 [inline] copy_data drivers/char/hw_random/virtio-rng.c:74 [inline] virtio_read+0x1a0/0x450 drivers/char/hw_random/virtio-rng.c:92 rng_get_data drivers/char/hw_random/core.c:192 [inline] rng_dev_read+0x1b4/0x630 drivers/char/hw_random/core.c:229 vfs_read+0x1e6/0x750 fs/read_write.c:479 ksys_read+0xd9/0x190 fs/read_write.c:619 __do_sys_read fs/read_write.c:629 [inline] __se_sys_read fs/read_write.c:627 [inline] __x64_sys_read+0x3e/0x50 fs/read_write.c:627 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae write to 0xffff888100a3d0cc of 4 bytes by interrupt on cpu 1: random_recv_done+0x58/0x80 drivers/char/hw_random/virtio-rng.c:45 vring_interrupt+0x15d/0x180 drivers/virtio/virtio_ring.c:2163 __handle_irq_event_percpu+0x93/0x480 kernel/irq/handle.c:158 handle_irq_event_percpu kernel/irq/handle.c:198 [inline] handle_irq_event+0x9a/0x150 kernel/irq/handle.c:215 handle_edge_irq+0x18e/0x5f0 kernel/irq/chip.c:822 generic_handle_irq_desc include/linux/irqdesc.h:158 [inline] handle_irq arch/x86/kernel/irq.c:231 [inline] __common_interrupt+0x60/0x100 arch/x86/kernel/irq.c:250 common_interrupt+0x9a/0xc0 arch/x86/kernel/irq.c:240 asm_common_interrupt+0x1e/0x40 __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:152 [inline] _raw_spin_unlock_irqrestore+0x38/0x60 kernel/locking/spinlock.c:194 spin_unlock_irqrestore include/linux/spinlock.h:404 [inline] unlock_page_lruvec_irqrestore include/linux/memcontrol.h:1562 [inline] release_pages+0x789/0x7e0 mm/swap.c:977 free_pages_and_swap_cache+0x1e5/0x200 mm/swap_state.c:320 tlb_batch_pages_flush mm/mmu_gather.c:49 [inline] tlb_flush_mmu_free mm/mmu_gather.c:242 [inline] tlb_flush_mmu+0x597/0x5f0 mm/mmu_gather.c:249 tlb_finish_mmu+0x86/0x100 mm/mmu_gather.c:340 exit_mmap+0x254/0x470 mm/mmap.c:3172 __mmput+0x27/0x1b0 kernel/fork.c:1113 mmput+0x3d/0x50 kernel/fork.c:1134 exit_mm+0xdb/0x170 kernel/exit.c:507 do_exit+0x608/0x17a0 kernel/exit.c:819 do_group_exit+0xa4/0x180 kernel/exit.c:929 __do_sys_exit_group+0xb/0x10 kernel/exit.c:940 __se_sys_exit_group+0x5/0x10 kernel/exit.c:938 __x64_sys_exit_group+0x16/0x20 kernel/exit.c:938 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae value changed: 0x00000040 -> 0x00000000 Reported by Kernel Concurrency Sanitizer on: CPU: 1 PID: 6044 Comm: modprobe Not tainted 5.16.0-rc6-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 ================================================================== virtio_rng virtio3: input:id 0 is not a head!