From: Jason Gunthorpe jgg@nvidia.com 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@intel.com 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?
Regards, Yi Liu