linux/kernel/dma
Michael S. Tsirkin 61868dc55a dma-mapping: add DMA_ATTR_CPU_CACHE_CLEAN
When multiple small DMA_FROM_DEVICE or DMA_BIDIRECTIONAL buffers share a
cacheline, and DMA_API_DEBUG is enabled, we get this warning:
	cacheline tracking EEXIST, overlapping mappings aren't supported.

This is because when one of the mappings is removed, while another one
is active, CPU might write into the buffer.

Add an attribute for the driver to promise not to do this, making the
overlapping safe, and suppressing the warning.

Message-ID: <2d5d091f9d84b68ea96abd545b365dd1d00bbf48.1767601130.git.mst@redhat.com>
Reviewed-by: Petr Tesarik <ptesarik@suse.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2025-12-31 19:30:02 -05:00
..
coherent.c dma-coherent: Warn if OF reserved memory is beyond current coherent DMA mask 2025-04-22 17:44:09 +02:00
contiguous.c dma: contiguous: Reserve default CMA heap 2025-10-18 21:31:21 +05:30
debug.c dma-mapping: add DMA_ATTR_CPU_CACHE_CLEAN 2025-12-31 19:30:02 -05:00
debug.h dma-mapping: export new dma_*map_phys() interface 2025-09-12 00:18:21 +02:00
direct.c VFIO updates for v6.19-rc1 2025-12-04 18:42:48 -08:00
direct.h dma-mapping: convert dma_direct_*map_page to be phys_addr_t based 2025-09-12 00:18:20 +02:00
dummy.c dma-mapping: convert dummy ops to physical address mapping 2025-10-29 10:27:29 +01:00
Kconfig dma-debug: remove DMA_API_DEBUG_SG 2024-10-29 08:53:37 +01:00
Makefile dma-mapping: clearly mark DMA ops as an architecture feature 2024-09-04 07:08:51 +03:00
map_benchmark.c tools/dma: move dma_map_benchmark from selftests to tools/dma 2025-10-29 09:41:40 +01:00
mapping.c dma-mapping: remove unused map_page callback 2025-10-29 10:27:31 +01:00
ops_helpers.c dma-mapping: remove unused map_page callback 2025-10-29 10:27:31 +01:00
pool.c dma/pool: eliminate alloc_pages warning in atomic_pool_expand 2025-12-08 09:40:57 +01:00
remap.c dma-remap: drop nth_page() in dma_common_contiguous_remap() 2025-09-21 14:22:06 -07:00
swiotlb.c mm: make INVALID_PHYS_ADDR a generic macro 2025-11-16 17:28:26 -08:00