On Tue, Jan 06, 2026 at 09:50:00AM -0500, Michael S. Tsirkin wrote: > On Mon, Jan 05, 2026 at 01:19:39PM -0500, Stefan Hajnoczi wrote: > > On Mon, Jan 05, 2026 at 03:23:29AM -0500, Michael S. Tsirkin wrote: > > > @@ -61,7 +62,7 @@ struct virtio_scsi_cmd { > > > > > > struct virtio_scsi_event_node { > > > struct virtio_scsi *vscsi; > > > - struct virtio_scsi_event event; > > > + struct virtio_scsi_event *event; > > > struct work_struct work; > > > }; > > > > > > @@ -89,6 +90,11 @@ struct virtio_scsi { > > > > > > struct virtio_scsi_vq ctrl_vq; > > > struct virtio_scsi_vq event_vq; > > > + > > > + __dma_from_device_group_begin(); > > > + struct virtio_scsi_event events[VIRTIO_SCSI_EVENT_LEN]; > > > + __dma_from_device_group_end(); > > > > If the device emits two events in rapid succession, could the CPU see > > stale data for the second event because it already holds the cache line > > for reading the first event? > > No because virtio does unmap and syncs the cache line. > > In other words, CPU reads cause no issues. > > The issues are exclusively around CPU writes dirtying the > cache and writeback overwriting DMA data. I see. In that case I'm happy with the virtio-scsi change: Reviewed-by: Stefan Hajnoczi