On Wed, Apr 23, 2025 at 11:12:54AM +0300, Leon Romanovsky wrote: > From: Christoph Hellwig <hch@xxxxxx> > > For the upcoming IOVA-based DMA API we want to use the interface batch the > sync after mapping multiple entries from dma-iommu without having a > scatterlist. Grammer: For the upcoming IOVA-based DMA API we want to batch the ops->iotlb_sync_map() call after mapping multiple IOVAs from dma-iommu without having a scatterlist. Improve the API. Add a wrapper for the map_sync as iommu_sync_map() so that callers don't need to poke into the methods directly. Formalize __iommu_map() into iommu_map_nosync() which requires the caller to call iommu_sync_map() after all maps are completed. Refactor the existing sanity checks from all the different layers into iommu_map_nosync(). > drivers/iommu/iommu.c | 65 +++++++++++++++++++------------------------ > include/linux/iommu.h | 4 +++ > 2 files changed, 33 insertions(+), 36 deletions(-) Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > + /* Discourage passing strange GFP flags */ > + if (WARN_ON_ONCE(gfp & (__GFP_COMP | __GFP_DMA | __GFP_DMA32 | > + __GFP_HIGHMEM))) > + return -EINVAL; There is some kind of overlap with the new iommu_alloc_pages_node() here that does a similar check, nothing that can be addressed in this series but maybe a TBD for later.. Jason