File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -2618,6 +2618,25 @@ size_t iommu_unmap(struct iommu_domain *domain,
2618
2618
}
2619
2619
EXPORT_SYMBOL_GPL (iommu_unmap );
2620
2620
2621
+ /**
2622
+ * iommu_unmap_fast() - Remove mappings from a range of IOVA without IOTLB sync
2623
+ * @domain: Domain to manipulate
2624
+ * @iova: IO virtual address to start
2625
+ * @size: Length of the range starting from @iova
2626
+ * @iotlb_gather: range information for a pending IOTLB flush
2627
+ *
2628
+ * iommu_unmap_fast() will remove a translation created by iommu_map().
2629
+ * It can't subdivide a mapping created by iommu_map(), so it should be
2630
+ * called with IOVA ranges that match what was passed to iommu_map(). The
2631
+ * range can aggregate contiguous iommu_map() calls so long as no individual
2632
+ * range is split.
2633
+ *
2634
+ * Basically iommu_unmap_fast() is the same as iommu_unmap() but for callers
2635
+ * which manage the IOTLB flushing externally to perform a batched sync.
2636
+ *
2637
+ * Returns: Number of bytes of IOVA unmapped. iova + res will be the point
2638
+ * unmapping stopped.
2639
+ */
2621
2640
size_t iommu_unmap_fast (struct iommu_domain * domain ,
2622
2641
unsigned long iova , size_t size ,
2623
2642
struct iommu_iotlb_gather * iotlb_gather )
You can’t perform that action at this time.
0 commit comments