On Fri, Jul 05, 2024 at 07:58:06AM +0200, Christoph Hellwig wrote:
quoted
This is exactly how dma_map_sg() works.
Which dma_map_sg? swiotlb handling is implemented in the underlying
ops, dma-direct and dma-iommu specifically.
dma-direct just iterates over the entries and calls dma_direct_map_page,
which does a per-entry decision to bounce based on
is_swiotlb_force_bounce, dma_capable and dma_kmalloc_needs_bounce.
dma-direct is not going to have "use_iova" flag. Robin pointed to
dma-iommu path.
In that case the flow is dma_map_sg()->iommu_dma_map_sg()->dev_use_sg_swiotlb().
Thanks