Re: [PATCH v2 03/11] iommufd/hw_pagetable: Use domain_alloc_user op for domain allocation

From: Nicolin Chen
Date: Fri May 19 2023 - 14:58:18 EST


On Fri, May 19, 2023 at 08:56:25AM +0000, Tian, Kevin wrote:

> > From: Yi Liu <yi.l.liu@xxxxxxxxx>
> > Sent: Thursday, May 11, 2023 10:39 PM
> >
> >
> > @@ -88,7 +90,10 @@ iommufd_hw_pagetable_alloc(struct iommufd_ctx
> > *ictx, struct iommufd_ioas *ioas,
> > refcount_inc(&ioas->obj.users);
> > hwpt->ioas = ioas;
> >
> > - hwpt->domain = iommu_domain_alloc(idev->dev->bus);
> > + if (ops->domain_alloc_user)
> > + hwpt->domain = ops->domain_alloc_user(idev->dev, NULL,
> > NULL);
> > + else
> > + hwpt->domain = iommu_domain_alloc(idev->dev->bus);
>
> this reminds the comment for @domain_alloc_user() should clarify
> that UNMANGED domain type is assumed when no user data is
> provided, to be compatible with iommu_domain_alloc().

Yes. Perhaps:

* @domain_alloc_user: allocate user iommu domain. A valid user_data pointer and
* a parent pointer to a kernel-managed domain are required
* to allocate an IOMMU_DOMAIN_NESTED domain. Otherwise, the
* new domain will be set to an IOMMU_DOMAIN_UNMANAGED type.

Thanks
Nic