On Thu, Jan 08, 2026 at 03:04:07PM +0100, Stefano Garzarella wrote: > On Mon, Jan 05, 2026 at 03:23:17AM -0500, Michael S. Tsirkin wrote: > > On non-cache-coherent platforms, when a structure contains a buffer > > used for DMA alongside fields that the CPU writes to, cacheline sharing > > can cause data corruption. > > > > The event_list array is used for DMA_FROM_DEVICE operations via > > virtqueue_add_inbuf(). The adjacent event_run and guest_cid fields are > > written by the CPU while the buffer is available, so mapped for the > > device. If these share cachelines with event_list, CPU writes can > > corrupt DMA data. > > > > Add __dma_from_device_group_begin()/end() annotations to ensure event_list > > is isolated in its own cachelines. > > > > Signed-off-by: Michael S. Tsirkin <[email protected]> > > --- > > net/vmw_vsock/virtio_transport.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/net/vmw_vsock/virtio_transport.c > > b/net/vmw_vsock/virtio_transport.c > > index 8c867023a2e5..bb94baadfd8b 100644 > > --- a/net/vmw_vsock/virtio_transport.c > > +++ b/net/vmw_vsock/virtio_transport.c > > @@ -17,6 +17,7 @@ > > #include <linux/virtio_ids.h> > > #include <linux/virtio_config.h> > > #include <linux/virtio_vsock.h> > > +#include <linux/dma-mapping.h> > > #include <net/sock.h> > > #include <linux/mutex.h> > > #include <net/af_vsock.h> > > @@ -59,8 +60,9 @@ struct virtio_vsock { > > */ > > struct mutex event_lock; > > bool event_run; > > + __dma_from_device_group_begin(); > > struct virtio_vsock_event event_list[8]; > > - > > + __dma_from_device_group_end(); > > Can we keep the blank line before `guest_cid` so that the comment before > this section makes sense? (regarding the lock required to access these > fields) > > Thanks, > Stefano
A follow up patch re-introduces it, so I don't think it matters? > > u32 guest_cid; > > bool seqpacket_allow; > > > > -- > > MST > >
