================================================================== BUG: KCSAN: data-race in detach_buf_split / virtqueue_add read to 0xffff888101ad432c of 4 bytes by task 3096 on cpu 0: virtqueue_add_split drivers/virtio/virtio_ring.c:575 [inline] virtqueue_add+0x75a/0x20e0 drivers/virtio/virtio_ring.c:2133 virtqueue_add_inbuf+0x53/0x80 drivers/virtio/virtio_ring.c:2212 request_entropy drivers/char/hw_random/virtio-rng.c:61 [inline] copy_data drivers/char/hw_random/virtio-rng.c:74 [inline] virtio_read+0x1c5/0x3f0 drivers/char/hw_random/virtio-rng.c:92 rng_get_data drivers/char/hw_random/core.c:197 [inline] rng_dev_read+0x1a7/0x5e0 drivers/char/hw_random/core.c:234 do_loop_readv_writev fs/read_write.c:755 [inline] do_iter_read+0x324/0x760 fs/read_write.c:797 vfs_readv fs/read_write.c:915 [inline] do_preadv+0x159/0x230 fs/read_write.c:1007 __do_sys_preadv fs/read_write.c:1057 [inline] __se_sys_preadv fs/read_write.c:1052 [inline] __x64_sys_preadv+0x58/0x60 fs/read_write.c:1052 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd read-write to 0xffff888101ad432c of 4 bytes by interrupt on cpu 1: detach_buf_split+0x316/0x570 drivers/virtio/virtio_ring.c:760 virtqueue_get_buf_ctx_split drivers/virtio/virtio_ring.c:835 [inline] virtqueue_get_buf_ctx+0x3c2/0x5b0 drivers/virtio/virtio_ring.c:2327 virtqueue_get_buf+0x1f/0x30 drivers/virtio/virtio_ring.c:2333 random_recv_done+0x4c/0x90 drivers/char/hw_random/virtio-rng.c:42 vring_interrupt+0x150/0x170 drivers/virtio/virtio_ring.c:2501 __handle_irq_event_percpu+0x91/0x490 kernel/irq/handle.c:158 handle_irq_event_percpu kernel/irq/handle.c:193 [inline] handle_irq_event+0x64/0xf0 kernel/irq/handle.c:210 handle_edge_irq+0x167/0x590 kernel/irq/chip.c:819 generic_handle_irq_desc include/linux/irqdesc.h:158 [inline] handle_irq arch/x86/kernel/irq.c:231 [inline] __common_interrupt+0x3c/0xb0 arch/x86/kernel/irq.c:250 common_interrupt+0x7a/0x90 arch/x86/kernel/irq.c:240 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:636 decode_watchpoint kernel/kcsan/encoding.h:74 [inline] find_watchpoint kernel/kcsan/core.c:132 [inline] check_access kernel/kcsan/core.c:737 [inline] __tsan_read8+0x42/0x180 kernel/kcsan/core.c:1025 pv_queued_spin_unlock arch/x86/include/asm/paravirt.h:591 [inline] queued_spin_unlock arch/x86/include/asm/qspinlock.h:57 [inline] do_raw_spin_unlock include/linux/spinlock.h:203 [inline] __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:166 [inline] _raw_spin_unlock_bh+0x14/0x40 kernel/locking/spinlock.c:210 spin_unlock_bh include/linux/spinlock.h:395 [inline] batadv_nc_purge_paths+0x217/0x260 net/batman-adv/network-coding.c:471 batadv_nc_worker+0x3db/0xac0 net/batman-adv/network-coding.c:720 process_one_work+0x3e6/0x750 kernel/workqueue.c:2405 worker_thread+0x5f2/0xa10 kernel/workqueue.c:2552 kthread+0x1d7/0x210 kernel/kthread.c:379 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308 value changed: 0x000000ff -> 0x000000fe Reported by Kernel Concurrency Sanitizer on: CPU: 1 PID: 9 Comm: kworker/u4:0 Not tainted 6.4.0-rc4-syzkaller-00276-ge5282a7d8f6b #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/25/2023 Workqueue: bat_events batadv_nc_worker ==================================================================