On Mon, Apr 05, 2021 at 12:11:04PM -0700, Isaac J. Manjarres wrote: > Add a callback for IOMMU drivers to provide a path for the > IOMMU framework to call into an IOMMU driver, which can > call into the io-pgtable code, to map a physically contiguous > rnage of pages of the same size. > > For IOMMU drivers that do not specify a map_pages() callback, > the existing logic of mapping memory one page block at a time > will be used. > > Signed-off-by: Isaac J. Manjarres <isa...@codeaurora.org> > Suggested-by: Will Deacon <w...@kernel.org> > --- > include/linux/iommu.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index 9cf81242581a..528d6a58479e 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -192,6 +192,8 @@ struct iommu_iotlb_gather { > * @attach_dev: attach device to an iommu domain > * @detach_dev: detach device from an iommu domain > * @map: map a physically contiguous memory region to an iommu domain > + * @map_pages: map a physically contiguous set of pages of the same size to > + * an iommu domain. > * @unmap: unmap a physically contiguous memory region from an iommu domain > * @unmap_pages: unmap a number of pages of the same size from an iommu > domain > * @flush_iotlb_all: Synchronously flush all hardware TLBs for this domain > @@ -244,6 +246,9 @@ struct iommu_ops { > void (*detach_dev)(struct iommu_domain *domain, struct device *dev); > int (*map)(struct iommu_domain *domain, unsigned long iova, > phys_addr_t paddr, size_t size, int prot, gfp_t gfp); > + int (*map_pages)(struct iommu_domain *domain, unsigned long iova, > + phys_addr_t paddr, size_t pgsize, size_t pgcount, > + int prot, gfp_t gfp, size_t *mapped);
(same comment as for the io-pgtable callback). Will _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu