[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250624133923.1140421-8-ptesarik@suse.com>
Date: Tue, 24 Jun 2025 15:39:22 +0200
From: Petr Tesarik <ptesarik@...e.com>
To: Jonathan Corbet <corbet@....net>,
Morton <akpm@...ux-foundation.org>
Cc: Marek Szyprowski <m.szyprowski@...sung.com>,
Leon Romanovsky <leon@...nel.org>,
Keith Busch <kbusch@...nel.org>,
Caleb Sander Mateos <csander@...estorage.com>,
Sagi Grimberg <sagi@...mberg.me>,
Jens Axboe <axboe@...nel.dk>,
John Garry <john.g.garry@...cle.com>,
linux-doc@...r.kernel.org (open list:DOCUMENTATION),
linux-kernel@...r.kernel.org (open list),
linux-mm@...ck.org (open list:MEMORY MANAGEMENT),
Petr Tesarik <ptesarik@...e.com>
Subject: [PATCH 7/8] docs: dma-api: update streaming DMA API physical address constraints
Clarify that SWIOTLB also allows to use any physical address with the
streaming DMA API. Remove the requirement to use platform-dependent flags
to allocate buffers for dma_map_single().
Do not claim that platforms with an IOMMU may not require physically
contiguous buffers. Although the claim is generally correct, it is
misleading, because the current implementation of the streaming DMA API
explicitly rejects vmalloc addresses, no matter if an IOMMU is present or
not.
Signed-off-by: Petr Tesarik <ptesarik@...e.com>
---
Documentation/core-api/dma-api.rst | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/Documentation/core-api/dma-api.rst b/Documentation/core-api/dma-api.rst
index cd432996949c..65132ec88104 100644
--- a/Documentation/core-api/dma-api.rst
+++ b/Documentation/core-api/dma-api.rst
@@ -210,18 +210,12 @@ DMA_BIDIRECTIONAL direction isn't known
this API should be obtained from sources which guarantee it to be
physically contiguous (like kmalloc).
- Further, the DMA address of the memory must be within the dma_mask of
- the device. To ensure that the memory allocated by kmalloc is within
- the dma_mask, the driver may specify various platform-dependent flags
- to restrict the DMA address range of the allocation (e.g., on x86,
- GFP_DMA guarantees to be within the first 16MB of available DMA
- addresses, as required by ISA devices).
-
- Note also that the above constraints on physical contiguity and
- dma_mask may not apply if the platform has an IOMMU (a device which
- maps an I/O DMA address to a physical memory address). However, to be
- portable, device driver writers may *not* assume that such an IOMMU
- exists.
+ Mapping may also fail if the memory is not within the DMA mask of the
+ device. However, this constraint does not apply if the platform has
+ an IOMMU (a device which maps an I/O DMA address to a physical memory
+ address), or the kernel is configured with SWIOTLB (bounce buffers).
+ It is reasonable to assume that at least one of these mechanisms
+ allows streaming DMA to any physical address.
.. warning::
--
2.49.0
Powered by blists - more mailing lists