[PATCH 0/8] dma-mapping: migrate to physical address-based API

Leon Romanovsky
2025-06-25T13:19:19Z

This series refactors the DMA mapping to use physical addresses
as the primary interface instead of page+offset parameters. This
change aligns the DMA API with the underlying hardware reality where
DMA operations work with physical addresses, not page structures.

The series consists of 8 patches that progressively convert the DMA
mapping infrastructure from page-based to physical address-based APIs:

The series maintains backward compatibility by keeping the old
page-based API as wrapper functions around the new physical
address-based implementations.

Thanks

Leon Romanovsky (8):
dma-debug: refactor to use physical addresses for page mapping
dma-mapping: rename trace_dma_*map_page to trace_dma_*map_phys
iommu/dma: rename iommu_dma_*map_page to iommu_dma_*map_phys
dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
kmsan: convert kmsan_handle_dma to use physical addresses
dma-mapping: fail early if physical address is mapped through platform
callback
dma-mapping: export new dma_*map_phys() interface
mm/hmm: migrate to physical address-based DMA mapping API

Documentation/core-api/dma-api.rst | 4 +-
arch/powerpc/kernel/dma-iommu.c | 4 +-
drivers/iommu/dma-iommu.c | 14 +++----
drivers/virtio/virtio_ring.c | 4 +-
include/linux/dma-map-ops.h | 8 ++--
include/linux/dma-mapping.h | 13 ++++++
include/linux/iommu-dma.h | 7 ++--
include/linux/kmsan.h | 12 +++---
include/trace/events/dma.h | 4 +-
kernel/dma/debug.c | 28 ++++++++-----
kernel/dma/debug.h | 16 ++++---
kernel/dma/direct.c | 6 +--
kernel/dma/direct.h | 13 +++---
kernel/dma/mapping.c | 67 +++++++++++++++++++++---------
kernel/dma/ops_helpers.c | 6 +--
mm/hmm.c | 8 ++--
mm/kmsan/hooks.c | 36 ++++++++++++----
tools/virtio/linux/kmsan.h | 2 +-
18 files changed, 159 insertions(+), 93 deletions(-)

--
2.49.0