]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
vsock/virtio: use virtqueue_add_inbuf_cache_clean for events
authorMichael S. Tsirkin <mst@redhat.com>
Mon, 29 Dec 2025 23:27:54 +0000 (18:27 -0500)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 8 Jan 2026 14:54:26 +0000 (09:54 -0500)
The event_list array contains 8 small (4-byte) events that share
cachelines with each other. When CONFIG_DMA_API_DEBUG is enabled,
this can trigger warnings about overlapping DMA mappings within
the same cacheline.

The previous patch isolated event_list in its own cache lines
so the warnings are spurious.

Use virtqueue_add_inbuf_cache_clean() to indicate that the CPU does not
write into these fields, suppressing the warnings.

Reported-by: Cong Wang <xiyou.wangcong@gmail.com>
Message-ID: <4b5bf63a7ebb782d87f643466b3669df567c9fe1.1767601130.git.mst@redhat.com>
Acked-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
net/vmw_vsock/virtio_transport.c

index 3de2b2d49b51e3a139d1ae58a882561ff2b2bd73..999a0839726a014a784cf2c94ce726d94d6b13d2 100644 (file)
@@ -393,7 +393,7 @@ static int virtio_vsock_event_fill_one(struct virtio_vsock *vsock,
 
        sg_init_one(&sg, event, sizeof(*event));
 
-       return virtqueue_add_inbuf(vq, &sg, 1, event, GFP_KERNEL);
+       return virtqueue_add_inbuf_cache_clean(vq, &sg, 1, event, GFP_KERNEL);
 }
 
 /* event_lock must be held */