[RFC PATCH 0/7] dma-mapping: Use DMA_ATTR_CC_DECRYPTED through direct, pool and swiotlb paths

Aneesh Kumar K.V (Arm) posted 7 patches 1 month, 4 weeks ago
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(-)
[RFC PATCH 0/7] dma-mapping: Use DMA_ATTR_CC_DECRYPTED through direct, pool and swiotlb paths
Posted by Aneesh Kumar K.V (Arm) 1 month, 4 weeks ago
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