Messages in this thread Patch in this message | | | Subject | Re: [PATCH V2 2/5] iommu: Add iommu_dma_free_cpu_cached_iovas function | From | Lu Baolu <> | Date | Wed, 9 Sep 2020 08:45:34 +0800 |
| |
On 9/4/20 4:18 AM, Tom Murphy wrote: > to dma-iommu ops > > Add a iommu_dma_free_cpu_cached_iovas function to allow drivers which > use the dma-iommu ops to free cached cpu iovas. > > Signed-off-by: Tom Murphy <murphyt7@tcd.ie> > --- > drivers/iommu/dma-iommu.c | 9 +++++++++ > include/linux/dma-iommu.h | 3 +++ > 2 files changed, 12 insertions(+) > > diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c > index f69dc9467d71..33f3f4f5edc5 100644 > --- a/drivers/iommu/dma-iommu.c > +++ b/drivers/iommu/dma-iommu.c > @@ -50,6 +50,15 @@ struct iommu_dma_cookie { > struct iommu_domain *fq_domain; > }; > > +void iommu_dma_free_cpu_cached_iovas(unsigned int cpu, > + struct iommu_domain *domain) > +{ > + struct iommu_dma_cookie *cookie = domain->iova_cookie; > + struct iova_domain *iovad = &cookie->iovad; > + > + free_cpu_cached_iovas(cpu, iovad); > +} > + > static void iommu_dma_entry_dtor(unsigned long data) > { > struct page *freelist = (struct page *)data; > diff --git a/include/linux/dma-iommu.h b/include/linux/dma-iommu.h > index 2112f21f73d8..316d22a4a860 100644 > --- a/include/linux/dma-iommu.h > +++ b/include/linux/dma-iommu.h > @@ -37,6 +37,9 @@ void iommu_dma_compose_msi_msg(struct msi_desc *desc, > > void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list); > > +void iommu_dma_free_cpu_cached_iovas(unsigned int cpu, > + struct iommu_domain *domain); > + > #else /* CONFIG_IOMMU_DMA */ > > struct iommu_domain; >
I will add below in the next version:
diff --git a/include/linux/dma-iommu.h b/include/linux/dma-iommu.h index 37df037788f0..ab4bffea3aaa 100644 --- a/include/linux/dma-iommu.h +++ b/include/linux/dma-iommu.h @@ -81,5 +81,10 @@ static inline void iommu_dma_get_resv_regions(struct device *dev, struct list_he { }
+static inline void iommu_dma_free_cpu_cached_iovas(unsigned int cpu, + struct iommu_domain *domain) +{ +} + #endif /* CONFIG_IOMMU_DMA */ #endif /* __DMA_IOMMU_H */ Others looks good to me.
Best regards, baolu
| |