Re: [PATCH v6 07/33] iommu: Avoid reallocate default domain for a group

From: Will Deacon
Date: Tue Jan 26 2021 - 22:44:57 EST


On Mon, Jan 11, 2021 at 07:18:48PM +0800, Yong Wu wrote:
> If group->default_domain exists, avoid reallocate it.
>
> In some iommu drivers, there may be several devices share a group. Avoid
> realloc the default domain for this case.
>
> Signed-off-by: Yong Wu <yong.wu@xxxxxxxxxxxx>
> ---
> 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 3d099a31ddca..f4b87e6abe80 100644
> --- a/drivers/iommu/iommu.c
> +++ b/drivers/iommu/iommu.c
> @@ -266,7 +266,8 @@ int iommu_probe_device(struct device *dev)
> * support default domains, so the return value is not yet
> * checked.
> */
> - iommu_alloc_default_domain(group, dev);
> + if (!group->default_domain)
> + iommu_alloc_default_domain(group, dev);

I don't really get what this achieves, since iommu_alloc_default_domain()
looks like this:

static int iommu_alloc_default_domain(struct iommu_group *group,
struct device *dev)
{
unsigned int type;

if (group->default_domain)
return 0;

...

in which case, it should be fine?

Will