Re: [PATCH v12 08/17] iommu: Make free of iommu_domain_ops optional

From: Jason Gunthorpe
Date: Fri Aug 26 2022 - 10:53:23 EST


On Fri, Aug 26, 2022 at 08:11:32PM +0800, Lu Baolu wrote:
> So that the drivers are able to implement static singleton instance for
> some special domains. The blocking domain is an example. The driver has
> no need to allocate different memory for each blocking domain allocation
> request. Hence, no need for a free callback.
>
> Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>
> Tested-by: Zhangfei Gao <zhangfei.gao@xxxxxxxxxx>
> Tested-by: Tony Zhu <tony.zhu@xxxxxxxxx>
> ---
> drivers/iommu/iommu.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> index e985f4d5895f..630e1b64ed89 100644
> --- a/drivers/iommu/iommu.c
> +++ b/drivers/iommu/iommu.c
> @@ -1972,7 +1972,8 @@ void iommu_domain_free(struct iommu_domain *domain)
> if (domain->type == IOMMU_DOMAIN_SVA)
> mmdrop(domain->mm);
> iommu_put_dma_cookie(domain);
> - domain->ops->free(domain);
> + if (domain->ops->free)
> + domain->ops->free(domain);
> }
> EXPORT_SYMBOL_GPL(iommu_domain_free);

This patch is in the wrong order, it needs to be before the ARM patch
implementing the blocking domain

But looks OK

Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx>

Jason