lkml.org 
[lkml]   [2020]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [PATCH V2 2/5] iommu: Add iommu_dma_free_cpu_cached_iovas function
From
Date
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

\
 
 \ /
  Last update: 2020-09-09 02:52    [W:0.123 / U:2.108 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site