]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
dma-mapping: introduce DMA_ATTR_CC_SHARED for shared memory
authorJiri Pirko <jiri@nvidia.com>
Wed, 25 Mar 2026 19:23:51 +0000 (20:23 +0100)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Thu, 2 Apr 2026 05:29:33 +0000 (07:29 +0200)
commitf0548044a02630402d374df195ed3af4cc5e4711
tree98713be309d9a76bf648538dff3aa1548f258a8b
parent27e2e9b9b49c5d5260969168b86cd238254b9105
dma-mapping: introduce DMA_ATTR_CC_SHARED for shared memory

Current CC designs don't place a vIOMMU in front of untrusted devices.
Instead, the DMA API forces all untrusted device DMA through swiotlb
bounce buffers (is_swiotlb_force_bounce()) which copies data into
shared memory on behalf of the device.

When a caller has already arranged for the memory to be shared
via set_memory_decrypted(), the DMA API needs to know so it can map
directly using the unencrypted physical address rather than bounce
buffering. Following the pattern of DMA_ATTR_MMIO, add
DMA_ATTR_CC_SHARED for this purpose. Like the MMIO case, only the
caller knows what kind of memory it has and must inform the DMA API
for it to work correctly.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Acked-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/20260325192352.437608-2-jiri@resnulli.us
include/linux/dma-mapping.h
include/trace/events/dma.h
kernel/dma/direct.h
kernel/dma/mapping.c