]> www.infradead.org Git - users/hch/misc.git/commit
dma-mapping: Implement link/unlink ranges API
authorLeon Romanovsky <leonro@nvidia.com>
Mon, 5 May 2025 07:01:44 +0000 (10:01 +0300)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Tue, 6 May 2025 06:36:53 +0000 (08:36 +0200)
commit433a76207dcf5facc0183acb790f6e8398585258
tree54753813f201b592314cabf19ac74316162d9c13
parented18a46262be4397cdc24382fb331c68846fef6e
dma-mapping: Implement link/unlink ranges API

Introduce new DMA APIs to perform DMA linkage of buffers
in layers higher than DMA.

In proposed API, the callers will perform the following steps.
In map path:
if (dma_can_use_iova(...))
    dma_iova_alloc()
    for (page in range)
       dma_iova_link_next(...)
    dma_iova_sync(...)
else
     /* Fallback to legacy map pages */
             for (all pages)
       dma_map_page(...)

In unmap path:
if (dma_can_use_iova(...))
     dma_iova_destroy()
else
     for (all pages)
dma_unmap_page(...)

Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Jens Axboe <axboe@kernel.dk>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
drivers/iommu/dma-iommu.c
include/linux/dma-mapping.h