[PATCH RFC 00/13] fix DMA aligment issues around virtio
From: Michael S. Tsirkin
Date: Tue Dec 30 2025 - 05:15:50 EST
Cong Wang reported dma debug warnings with virtio-vsock
and proposed a patch, see:
https://lore.kernel.org/all/20251228015451.1253271-1-xiyou.wangcong@xxxxxxxxx/
however, the issue is more widespread.
This is an attempt to fix it systematically.
Note: i2c and gio might also be affected, I am still looking
into it. Help from maintainers welcome.
Early RFC, compile tested only. Sending for early feedback/flames.
Cursor/claude used liberally mostly for refactoring, and english.
DMA maintainers, could you please confirm the DMA core changes
are ok with you?
Thanks!
Michael S. Tsirkin (13):
dma-mapping: add __dma_from_device_align_begin/end
docs: dma-api: document __dma_align_begin/end
dma-mapping: add DMA_ATTR_CPU_CACHE_CLEAN
docs: dma-api: document DMA_ATTR_CPU_CACHE_CLEAN
dma-debug: track cache clean flag in entries
virtio: add virtqueue_add_inbuf_cache_clean API
vsock/virtio: fix DMA alignment for event_list
vsock/virtio: use virtqueue_add_inbuf_cache_clean for events
virtio_input: fix DMA alignment for evts
virtio_scsi: fix DMA cacheline issues for events
virtio-rng: fix DMA alignment for data buffer
virtio_input: use virtqueue_add_inbuf_cache_clean for events
vsock/virtio: reorder fields to reduce struct padding
Documentation/core-api/dma-api-howto.rst | 42 +++++++++++++
Documentation/core-api/dma-attributes.rst | 9 +++
drivers/char/hw_random/virtio-rng.c | 2 +
drivers/scsi/virtio_scsi.c | 18 ++++--
drivers/virtio/virtio_input.c | 5 +-
drivers/virtio/virtio_ring.c | 72 +++++++++++++++++------
include/linux/dma-mapping.h | 17 ++++++
include/linux/virtio.h | 5 ++
kernel/dma/debug.c | 26 ++++++--
net/vmw_vsock/virtio_transport.c | 8 ++-
10 files changed, 172 insertions(+), 32 deletions(-)
--
MST