On Mon, Oct 28, 2024 at 11:24:10AM +0800, Zhangfei Gao wrote: > > +/** > > + * iommufd_viommu_alloc_hwpt_nested() - Get a hwpt_nested for a vIOMMU > > + * @viommu: vIOMMU ojbect to associate the hwpt_nested/domain with > > + * @user_data: user_data pointer. Must be valid > > + * > > + * Allocate a new IOMMU_DOMAIN_NESTED for a vIOMMU and return it as a NESTED > > + * hw_pagetable. > > + */ > > +static struct iommufd_hwpt_nested * > > +iommufd_viommu_alloc_hwpt_nested(struct iommufd_viommu *viommu, u32 flags, > > + const struct iommu_user_data *user_data) > > +{ > > + struct iommufd_hwpt_nested *hwpt_nested; > > + struct iommufd_hw_pagetable *hwpt; > > + int rc; > > + > > + if (flags) > > + return ERR_PTR(-EOPNOTSUPP); > > This check should be removed. > > When a user page fault is required, IOMMU_HWPT_FAULT_ID_VALID is set. > if (cmd->flags & IOMMU_HWPT_FAULT_ID_VALID) { It can't just be removed.. I suspect that IOMMU_HWPT_FAULT_ID_VALID should not be set on the nested domain but on the parent? Jason