On Thu, Dec 05, 2024 at 03:21:03PM +0200, Leon Romanovsky wrote: > From: Leon Romanovsky <leonro@xxxxxxxxxx> > > Add kernel-doc section for iommu_unmap and iommu_unmap_fast to document > existing limitation of underlying functions which can't split individual > ranges. > > Suggested-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxx> > --- > drivers/iommu/iommu.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index ec75d14497bf..9eb7c7d7aa70 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -2590,6 +2590,24 @@ size_t iommu_unmap(struct iommu_domain *domain, > } > EXPORT_SYMBOL_GPL(iommu_unmap); > > +/** > + * iommu_unmap_fast() - Remove mappings from a range of IOVA without IOTLB sync > + * @domain: Domain to manipulate > + * @iova: IO virtual address to start > + * @size: Length of the range starting from @iova > + * @iotlb_gather: range information for a pending IOTLB flush > + * > + * iommu_unmap_fast() will remove a translation created by iommu_map(). It cannot > + * subdivide a mapping created by iommu_map(), so it should be called with IOVA > + * ranges that match what was passed to iommu_map(). The range can aggregate > + * contiguous iommu_map() calls so long as no individual range is split. > + * > + * Basicly iommu_unmap_fast() as the same as iommu_unmap() but for callers Typo: s/Basicly/Basically/ Typo: s/as the same/is the same/ > + * which manage IOTLB flush range externaly to perform batched sync. Grammar: s/manage IOTLB flush range/manage the IOTLB flushing/ Typo: s/externaly/externally/ Grammar: s/to perform batched sync/to perform a batched sync/ With those: Acked-by: Will Deacon <will@xxxxxxxxxx> Thank you for doing this! Will