Re: [PATCH v2 0/8] dma-mapping: Use DMA_ATTR_CC_SHARED through direct, pool and swiotlb paths
From: Mostafa Saleh
Date: Tue Jun 02 2026 - 11:12:25 EST
On Tue, Jun 2, 2026 at 3:25 PM Mostafa Saleh <smostafa@xxxxxxxxxx> wrote:
>
> On Mon, Apr 20, 2026 at 11:44:07AM +0530, Aneesh Kumar K.V (Arm) wrote:
> > This series propagates DMA_ATTR_CC_SHARED 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.
>
> I tested this series on protected KVM and did not see regressions.
> Tested-by: Mostafa Saleh <smostafa@xxxxxxxxxx>
>
Sorry, that was supposed to be for v5:
https://lore.kernel.org/all/20260522042815.370873-1-aneesh.kumar@xxxxxxxxxx/
Thanks,
Mostafa
> Next, I will:
> - Send the pKVM CC patch separately.
> - Review this series.
>
> Thanks,
> Mostafa
>
> >
> > The series:
> > - moves swiotlb-backed allocations out of __dma_direct_alloc_pages(),
> > - propagates DMA_ATTR_CC_SHARED 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.
> >
> > Changes from v1:
> > * rebased to latest kernel (change from DMA_ATTR_CC_DECRYPTED -> DMA_ATTR_CC_SHARED)
> > * Update alloc path such that DMA_ATTR_CC_SHARED s not a caller-visible attribute.
> >
> > Aneesh Kumar K.V (Arm) (8):
> > dma-direct: swiotlb: handle swiotlb alloc/free outside
> > __dma_direct_alloc_pages
> > dma-direct: use DMA_ATTR_CC_SHARED 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_SHARED
> > dma-mapping: make dma_pgprot() honor DMA_ATTR_CC_SHARED
> > dma-direct: make dma_direct_map_phys() honor DMA_ATTR_CC_SHARED
> > dma-direct: set decrypted flag for remapped DMA allocations
> > dma-direct: select DMA address encoding from DMA_ATTR_CC_SHARED
> >
> > 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 | 185 ++++++++++++++++++++++++++++--------
> > kernel/dma/direct.h | 25 ++---
> > kernel/dma/mapping.c | 16 +++-
> > kernel/dma/pool.c | 154 +++++++++++++++++++-----------
> > kernel/dma/swiotlb.c | 89 +++++++++++++----
> > 9 files changed, 355 insertions(+), 135 deletions(-)
> >
> >
> > base-commit: c1f49dea2b8f335813d3b348fd39117fb8efb428
> > --
> > 2.43.0
> >