Cong Wang reported dma debug warnings with virtio-vsock and proposed a patch, see:
https://lore.kernel.org/all/[email protected]/ 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. Lightly tested. Cursor/claude used liberally, mostly for refactoring/API updates/English. DMA maintainers, could you please confirm the DMA core changes are ok with you? Thanks! Michael S. Tsirkin (15): dma-mapping: add __dma_from_device_group_begin()/end() docs: dma-api: document __dma_from_device_group_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 padding gpio: virtio: fix DMA alignment gpio: virtio: reorder fields to reduce struct padding Documentation/core-api/dma-api-howto.rst | 52 ++++++++++++++ Documentation/core-api/dma-attributes.rst | 9 +++ drivers/char/hw_random/virtio-rng.c | 3 + drivers/gpio/gpio-virtio.c | 15 ++-- drivers/scsi/virtio_scsi.c | 17 +++-- drivers/virtio/virtio_input.c | 5 +- drivers/virtio/virtio_ring.c | 83 ++++++++++++++++------- include/linux/dma-mapping.h | 20 ++++++ include/linux/virtio.h | 5 ++ kernel/dma/debug.c | 28 ++++++-- net/vmw_vsock/virtio_transport.c | 8 ++- 11 files changed, 205 insertions(+), 40 deletions(-) -- MST
