[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 9 Sep 2020 08:45:34 +0800
From: Lu Baolu <baolu.lu@...ux.intel.com>
To: Tom Murphy <murphyt7@....ie>, iommu@...ts.linux-foundation.org
Cc: baolu.lu@...ux.intel.com, Joerg Roedel <joro@...tes.org>,
David Woodhouse <dwmw2@...radead.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH V2 2/5] iommu: Add iommu_dma_free_cpu_cached_iovas
function
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@....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
Powered by blists - more mailing lists