public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/7] dma-mapping: Use DMA_ATTR_CC_DECRYPTED through direct, pool and swiotlb paths
@ 2026-04-17  8:58 Aneesh Kumar K.V (Arm)
  2026-04-17  8:58 ` [RFC PATCH 1/7] dma-direct: swiotlb: handle swiotlb alloc/free outside __dma_direct_alloc_pages Aneesh Kumar K.V (Arm)
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Aneesh Kumar K.V (Arm) @ 2026-04-17  8:58 UTC (permalink / raw)
  To: iommu, linux-kernel
  Cc: robin.murphy, m.szyprowski, will, maz, suzuki.poulose,
	catalin.marinas, jiri, jgg, aneesh.kumar, Mostafa Saleh

This series propagates DMA_ATTR_CC_DECRYPTED through the dma-direct,
dma-pool, and swiotlb paths so that encrypted and decrypted DMA buffers
are handled consistently.

Today, the direct DMA path mostly relies on force_dma_unencrypted() for
shared/decrypted buffer handling. This series consolidates the
force_dma_unencrypted() checks in the top-level functions and ensures
that the remaining DMA interfaces use DMA attributes to make the correct
decisions.

The series:
- moves swiotlb-backed allocations out of __dma_direct_alloc_pages(),
- propagates DMA_ATTR_CC_DECRYPTED through the dma-direct alloc/free
  paths,
- teaches the atomic DMA pools to track encrypted versus decrypted
  state,
- tracks swiotlb pool encryption state and enforces strict pool
  selection,
- centralizes encrypted/decrypted pgprot handling in dma_pgprot() using
  DMA attributes,
- makes dma_direct_map_phys() choose the DMA address encoding from
  attrs, and
- uses the selected swiotlb pool state to derive the returned DMA
  address.

Aneesh Kumar K.V (Arm) (7):
  dma-direct: swiotlb: handle swiotlb alloc/free outside
    __dma_direct_alloc_pages
  dma-direct: use DMA_ATTR_CC_DECRYPTED in alloc/free paths
  dma-pool: track decrypted atomic pools and select them via attrs
  dma: swiotlb: track pool encryption state and honor
    DMA_ATTR_CC_DECRYPTED
  dma-mapping: make dma_pgprot() honor DMA_ATTR_CC_DECRYPTED
  dma-direct: make dma_direct_map_phys() honor DMA_ATTR_CC_DECRYPTED
  dma-direct: set decrypted flag for remapped DMA allocations

 drivers/iommu/dma-iommu.c   |   2 +-
 include/linux/dma-direct.h  |  10 +++
 include/linux/dma-map-ops.h |   2 +-
 include/linux/swiotlb.h     |   7 +-
 kernel/dma/direct.c         | 129 ++++++++++++++++++++++++------
 kernel/dma/direct.h         |  25 +++---
 kernel/dma/mapping.c        |  16 +++-
 kernel/dma/pool.c           | 154 +++++++++++++++++++++++-------------
 kernel/dma/swiotlb.c        |  89 ++++++++++++++++-----
 9 files changed, 318 insertions(+), 116 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-04-17 15:35 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-17  8:58 [RFC PATCH 0/7] dma-mapping: Use DMA_ATTR_CC_DECRYPTED through direct, pool and swiotlb paths Aneesh Kumar K.V (Arm)
2026-04-17  8:58 ` [RFC PATCH 1/7] dma-direct: swiotlb: handle swiotlb alloc/free outside __dma_direct_alloc_pages Aneesh Kumar K.V (Arm)
2026-04-17  8:58 ` [RFC PATCH 2/7] dma-direct: use DMA_ATTR_CC_DECRYPTED in alloc/free paths Aneesh Kumar K.V (Arm)
2026-04-17 15:28   ` Jason Gunthorpe
2026-04-17 15:34     ` Aneesh Kumar K.V
2026-04-17  8:58 ` [RFC PATCH 3/7] dma-pool: track decrypted atomic pools and select them via attrs Aneesh Kumar K.V (Arm)
2026-04-17  8:58 ` [RFC PATCH 4/7] dma: swiotlb: track pool encryption state and honor DMA_ATTR_CC_DECRYPTED Aneesh Kumar K.V (Arm)
2026-04-17  8:58 ` [RFC PATCH 5/7] dma-mapping: make dma_pgprot() " Aneesh Kumar K.V (Arm)
2026-04-17  8:58 ` [RFC PATCH 6/7] dma-direct: make dma_direct_map_phys() " Aneesh Kumar K.V (Arm)
2026-04-17  8:59 ` [RFC PATCH 7/7] dma-direct: set decrypted flag for remapped DMA allocations Aneesh Kumar K.V (Arm)
2026-04-17  9:56 ` [RFC PATCH] dma-direct: select DMA address encoding from DMA_ATTR_CC_DECRYPTED Aneesh Kumar K.V

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox