[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <cover.1754292567.git.leon@kernel.org>
Date: Mon, 4 Aug 2025 15:42:34 +0300
From: Leon Romanovsky <leon@...nel.org>
To: Marek Szyprowski <m.szyprowski@...sung.com>
Cc: Jason Gunthorpe <jgg@...dia.com>,
Abdiel Janulgue <abdiel.janulgue@...il.com>,
Alexander Potapenko <glider@...gle.com>,
Alex Gaynor <alex.gaynor@...il.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Christoph Hellwig <hch@....de>,
Danilo Krummrich <dakr@...nel.org>,
iommu@...ts.linux.dev,
Jason Wang <jasowang@...hat.com>,
Jens Axboe <axboe@...nel.dk>,
Joerg Roedel <joro@...tes.org>,
Jonathan Corbet <corbet@....net>,
Juergen Gross <jgross@...e.com>,
kasan-dev@...glegroups.com,
Keith Busch <kbusch@...nel.org>,
linux-block@...r.kernel.org,
linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-mm@...ck.org,
linux-nvme@...ts.infradead.org,
linuxppc-dev@...ts.ozlabs.org,
linux-trace-kernel@...r.kernel.org,
Madhavan Srinivasan <maddy@...ux.ibm.com>,
Masami Hiramatsu <mhiramat@...nel.org>,
Michael Ellerman <mpe@...erman.id.au>,
"Michael S. Tsirkin" <mst@...hat.com>,
Miguel Ojeda <ojeda@...nel.org>,
Robin Murphy <robin.murphy@....com>,
rust-for-linux@...r.kernel.org,
Sagi Grimberg <sagi@...mberg.me>,
Stefano Stabellini <sstabellini@...nel.org>,
Steven Rostedt <rostedt@...dmis.org>,
virtualization@...ts.linux.dev,
Will Deacon <will@...nel.org>,
xen-devel@...ts.xenproject.org
Subject: [PATCH v1 00/16] dma-mapping: migrate to physical address-based API
Changelog:
v1:
* Added new DMA_ATTR_MMIO attribute to indicate
PCI_P2PDMA_MAP_THRU_HOST_BRIDGE path.
* Rewrote dma_map_* functions to use thus new attribute
v0: https://lore.kernel.org/all/cover.1750854543.git.leon@kernel.org/
------------------------------------------------------------------------
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 maintains export symbol backward compatibility by keeping
the old page-based API as wrapper functions around the new physical
address-based implementations.
Thanks
Leon Romanovsky (16):
dma-mapping: introduce new DMA attribute to indicate MMIO memory
iommu/dma: handle MMIO path in dma_iova_link
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
iommu/dma: extend iommu_dma_*map_phys API to handle MMIO memory
dma-mapping: convert dma_direct_*map_page to be phys_addr_t based
kmsan: convert kmsan_handle_dma to use physical addresses
dma-mapping: handle MMIO flow in dma_map|unmap_page
xen: swiotlb: Open code map_resource callback
dma-mapping: export new dma_*map_phys() interface
mm/hmm: migrate to physical address-based DMA mapping API
mm/hmm: properly take MMIO path
block-dma: migrate to dma_map_phys instead of map_page
block-dma: properly take MMIO path
nvme-pci: unmap MMIO pages with appropriate interface
Documentation/core-api/dma-api.rst | 4 +-
Documentation/core-api/dma-attributes.rst | 7 ++
arch/powerpc/kernel/dma-iommu.c | 4 +-
block/blk-mq-dma.c | 15 ++-
drivers/iommu/dma-iommu.c | 69 +++++++------
drivers/nvme/host/pci.c | 18 +++-
drivers/virtio/virtio_ring.c | 4 +-
drivers/xen/swiotlb-xen.c | 21 +++-
include/linux/blk-mq-dma.h | 6 +-
include/linux/blk_types.h | 2 +
include/linux/dma-direct.h | 2 -
include/linux/dma-map-ops.h | 8 +-
include/linux/dma-mapping.h | 27 +++++
include/linux/iommu-dma.h | 11 +--
include/linux/kmsan.h | 12 ++-
include/trace/events/dma.h | 9 +-
kernel/dma/debug.c | 71 ++++---------
kernel/dma/debug.h | 37 ++-----
kernel/dma/direct.c | 22 +----
kernel/dma/direct.h | 50 ++++++----
kernel/dma/mapping.c | 115 +++++++++++++---------
kernel/dma/ops_helpers.c | 6 +-
mm/hmm.c | 19 ++--
mm/kmsan/hooks.c | 36 +++++--
rust/kernel/dma.rs | 3 +
tools/virtio/linux/kmsan.h | 2 +-
26 files changed, 320 insertions(+), 260 deletions(-)
--
2.50.1
Powered by blists - more mailing lists