syzbot


KCSAN: data-race in virtqueue_get_buf_ctx / vring_interrupt (7)

Status: moderation: reported on 2025/08/12 07:38
Subsystems: virt
[Documentation on labels]
Reported-by: syzbot+4d63e5dedf2218d56d21@syzkaller.appspotmail.com
First crash: 7d01h, last: 7d01h
Similar bugs (6)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in virtqueue_get_buf_ctx / vring_interrupt (6) virt 6 1 801d 801d 0/29 auto-obsoleted due to no activity on 2023/07/15 08:54
upstream KCSAN: data-race in virtqueue_get_buf_ctx / vring_interrupt virt 6 3 2114d 2124d 0/29 closed as invalid on 2019/11/19 13:44
upstream KCSAN: data-race in virtqueue_get_buf_ctx / vring_interrupt (5) virt 6 1 1136d 1136d 0/29 auto-closed as invalid on 2022/08/13 10:50
upstream KCSAN: data-race in virtqueue_get_buf_ctx / vring_interrupt (2) virt 6 4 2018d 2043d 0/29 auto-closed as invalid on 2020/04/19 05:34
upstream KCSAN: data-race in virtqueue_get_buf_ctx / vring_interrupt (3) virt 6 1 1400d 1400d 0/29 auto-closed as invalid on 2021/11/23 01:54
upstream KCSAN: data-race in virtqueue_get_buf_ctx / vring_interrupt (4) virt 6 1 1215d 1215d 0/29 auto-closed as invalid on 2022/05/27 01:16

Sample crash report:
==================================================================
BUG: KCSAN: data-race in virtqueue_get_buf_ctx / vring_interrupt

read-write to 0xffff888102727c50 of 2 bytes by task 5907 on cpu 0:
 virtqueue_get_buf_ctx_split drivers/virtio/virtio_ring.c:854 [inline]
 virtqueue_get_buf_ctx+0x3ca/0x590 drivers/virtio/virtio_ring.c:2545
 virtqueue_get_buf+0x1f/0x30 drivers/virtio/virtio_ring.c:2551
 virtscsi_vq_done+0x6a/0x100 drivers/scsi/virtio_scsi.c:187
 virtscsi_poll_requests drivers/scsi/virtio_scsi.c:210 [inline]
 virtscsi_tmf+0x10e/0x180 drivers/scsi/virtio_scsi.c:637
 virtscsi_device_reset+0x139/0x160 drivers/scsi/virtio_scsi.c:664
 scsi_try_bus_device_reset drivers/scsi/scsi_error.c:1004 [inline]
 scsi_ioctl_reset+0x29c/0x490 drivers/scsi/scsi_error.c:2504
 scsi_ioctl+0x5fd/0x14d0 drivers/scsi/scsi_ioctl.c:946
 sg_ioctl+0x12fb/0x1360 drivers/scsi/sg.c:1159
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:598 [inline]
 __se_sys_ioctl+0xcb/0x140 fs/ioctl.c:584
 __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:584
 x64_sys_call+0x1816/0x2ff0 arch/x86/include/generated/asm/syscalls_64.h:17
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd2/0x200 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffff888102727c50 of 2 bytes by interrupt on cpu 1:
 more_used_split drivers/virtio/virtio_ring.c:807 [inline]
 more_used drivers/virtio/virtio_ring.c:2683 [inline]
 vring_interrupt+0xab/0x180 drivers/virtio/virtio_ring.c:2698
 __handle_irq_event_percpu+0x93/0x440 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+0x154/0x470 kernel/irq/chip.c:855
 generic_handle_irq_desc include/linux/irqdesc.h:173 [inline]
 handle_irq arch/x86/kernel/irq.c:254 [inline]
 call_irq_handler arch/x86/kernel/irq.c:-1 [inline]
 __common_interrupt+0x60/0xb0 arch/x86/kernel/irq.c:325
 common_interrupt+0x3e/0x90 arch/x86/kernel/irq.c:318
 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:693
 native_irq_enable arch/x86/include/asm/irqflags.h:-1 [inline]
 arch_local_irq_enable arch/x86/include/asm/irqflags.h:119 [inline]
 handle_softirqs+0x6d/0x290 kernel/softirq.c:563
 __do_softirq kernel/softirq.c:613 [inline]
 invoke_softirq kernel/softirq.c:453 [inline]
 __irq_exit_rcu+0x3a/0xc0 kernel/softirq.c:680
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline]
 sysvec_apic_timer_interrupt+0x74/0x80 arch/x86/kernel/apic/apic.c:1050
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
 console_flush_all+0x55b/0x730 arch/x86/include/asm/irqflags.h:-1
 __console_flush_and_unlock kernel/printk/printk.c:3285 [inline]
 console_unlock+0xa1/0x330 kernel/printk/printk.c:3325
 vprintk_emit+0x388/0x650 kernel/printk/printk.c:2450
 vprintk_default+0x26/0x30 kernel/printk/printk.c:2465
 vprintk+0x1d/0x30 kernel/printk/printk_safe.c:82
 _printk+0x79/0xa0 kernel/printk/printk.c:2475
 __netdev_printk+0x321/0x3e0 net/core/dev.c:12588
 netdev_err+0x9b/0xd0 net/core/dev.c:12632
 bond_enslave+0x150e/0x2160 drivers/net/bonding/bond_main.c:2147
 do_set_master+0x390/0x460 net/core/rtnetlink.c:2948
 rtnl_newlink_create+0x426/0x620 net/core/rtnetlink.c:3839
 __rtnl_newlink net/core/rtnetlink.c:3942 [inline]
 rtnl_newlink+0xf29/0x12d0 net/core/rtnetlink.c:4057
 rtnetlink_rcv_msg+0x5fb/0x6d0 net/core/rtnetlink.c:6946
 netlink_rcv_skb+0x120/0x220 net/netlink/af_netlink.c:2552
 rtnetlink_rcv+0x1c/0x30 net/core/rtnetlink.c:6973
 netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]
 netlink_unicast+0x5c0/0x690 net/netlink/af_netlink.c:1346
 netlink_sendmsg+0x58b/0x6b0 net/netlink/af_netlink.c:1896
 sock_sendmsg_nosec net/socket.c:714 [inline]
 __sock_sendmsg+0x145/0x180 net/socket.c:729
 ____sys_sendmsg+0x31e/0x4e0 net/socket.c:2614
 ___sys_sendmsg+0x17b/0x1d0 net/socket.c:2668
 __sys_sendmsg net/socket.c:2700 [inline]
 __do_sys_sendmsg net/socket.c:2705 [inline]
 __se_sys_sendmsg net/socket.c:2703 [inline]
 __x64_sys_sendmsg+0xd4/0x160 net/socket.c:2703
 x64_sys_call+0x191e/0x2ff0 arch/x86/include/generated/asm/syscalls_64.h:47
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd2/0x200 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x043b -> 0x043c

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 5911 Comm: syz.1.801 Not tainted 6.17.0-rc1-syzkaller-00004-g53e760d89498 #0 PREEMPT(voluntary) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/08/12 07:38 upstream 53e760d89498 c06e8995 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in virtqueue_get_buf_ctx / vring_interrupt
* Struck through repros no longer work on HEAD.