Add a new DMA_ATTR_REQUIRE_COHERENT attribute to the DMA API to mark mappings that must run on a DMA‑coherent system. Such buffers cannot use the SWIOTLB path, may overlap with CPU caches, and do not depend on explicit cache flushing.
Mappings using this attribute are rejected on systems where cache side‑effects could lead to data corruption, and therefore do not need the cache‑overlap debugging logic. This series also includes fixes for DMA_ATTR_CPU_CACHE_CLEAN handling. Thanks. --- Changes in v2: - Added DMA_ATTR_REQUIRE_COHERENT attribute - Added HMM patch which needs this attribute as well - Renamed DMA_ATTR_CPU_CACHE_CLEAN to be DMA_ATTR_DEBUGGING_IGNORE_CACHELINES - Link to v1: https://patch.msgid.link/[email protected] --- Leon Romanovsky (8): dma-debug: Allow multiple invocations of overlapping entries dma-mapping: handle DMA_ATTR_CPU_CACHE_CLEAN in trace output dma-mapping: Clarify valid conditions for CPU cache line overlap dma-mapping: Introduce DMA require coherency attribute dma-direct: prevent SWIOTLB path when DMA_ATTR_REQUIRE_COHERENT is set iommu/dma: add support for DMA_ATTR_REQUIRE_COHERENT attribute RDMA/umem: Tell DMA mapping that UMEM requires coherency mm/hmm: Indicate that HMM requires DMA coherency Documentation/core-api/dma-attributes.rst | 34 +++++++++++++++++++++++-------- drivers/infiniband/core/umem.c | 5 +++-- drivers/iommu/dma-iommu.c | 21 +++++++++++++++---- drivers/virtio/virtio_ring.c | 10 ++++----- include/linux/dma-mapping.h | 15 ++++++++++---- include/trace/events/dma.h | 4 +++- kernel/dma/debug.c | 9 ++++---- kernel/dma/direct.h | 7 ++++--- kernel/dma/mapping.c | 6 ++++++ mm/hmm.c | 4 ++-- 10 files changed, 82 insertions(+), 33 deletions(-) --- base-commit: 11439c4635edd669ae435eec308f4ab8a0804808 change-id: 20260305-dma-debug-overlap-21487c3fa02c Best regards, -- Leon Romanovsky <[email protected]>
