On Mon, Jul 31, 2023 at 12:44:25PM +0000, Liu, Yi L wrote: > > From: Jason Gunthorpe <jgg@xxxxxxxxxx> > > Sent: Saturday, July 29, 2023 12:56 AM > > > > On Fri, Jul 28, 2023 at 09:37:21AM +0000, Tian, Kevin wrote: > > > > From: Yi Liu <yi.l.liu@xxxxxxxxx> > > > > Sent: Monday, July 24, 2023 7:04 PM > > > > > > > > + * @domain_alloc_user: allocate a user iommu domain corresponding to > > > > the input > > > > + * @hwpt_type that is defined as enum iommu_hwpt_type in the > > > > + * include/uapi/linux/iommufd.h. A returning domain will be > > > > + * set to an IOMMU_DOMAIN_NESTED type, upon valid > > > > @user_data > > > > + * and @parent that is a kernel-managed domain. Otherwise, > > > > + * it will be set to an IOMMU_DOMAIN_UNMANAGED type. > > > > Return > > > > + * ERR_PTR on allocation failure. > > > > > > "If @user_data is valid and @parent points to a kernel-managed domain, > > > the returning domain is set to IOMMU_DOMAIN_NESTED type. Otherwise > > > it is set to IOMMU_DOMAIN_UNMANAGED type." > > > > "If @user_data is valid and @parent points to a kernel-managed domain, > > then the returned domain must be the IOMMU_DOMAIN_NESTED type. Otherwise > > the returned domain is IOMMU_DOMAIN_UNMANAGED." > > > > Notice the detail that this API expects the driver to set the type and > > fully initialize the domain, including the generic iommu_domain > > struct, which is different than alloc_domain. > > > > When we implement this in drivers we should tidy this so all the alloc > > flows fully initialize the domain internally. > > Yes. this should be documented in the kdoc. Is it? Yeah, maybe it should be mentioned Jason