On Tue, Oct 24, 2023 at 08:06:06AM -0700, Yi Liu wrote: > @@ -195,6 +279,10 @@ int iommufd_hwpt_alloc(struct iommufd_ucmd *ucmd) > if (pt_obj->type == IOMMUFD_OBJ_IOAS) { > struct iommufd_hwpt_paging *hwpt_paging; > > + if (cmd->data_type != IOMMU_HWPT_DATA_NONE) { > + rc = -EINVAL; > + goto out_put_pt; > + } > ioas = container_of(pt_obj, struct iommufd_ioas, obj); > mutex_lock(&ioas->mutex); > hwpt_paging = iommufd_hwpt_paging_alloc(ucmd->ictx, ioas, idev, ?? What is this? Ah something went wrong earlier in "iommu: Pass in parent domain with user_data to domain_alloc_user op" Once we added the user_data we should flow it through to the op always. Jason