On Thu, Oct 17, 2024 at 01:41:23PM -0300, Jason Gunthorpe wrote: > On Thu, Oct 17, 2024 at 09:28:16AM -0700, Nicolin Chen wrote: > > On Wed, Oct 09, 2024 at 09:38:11AM -0700, Nicolin Chen wrote: > > > Add a new driver-type for ARM SMMUv3 to enum iommu_viommu_type. Implement > > > the viommu_alloc op with an arm_vsmmu_alloc function. As an initial step, > > > copy the VMID from s2_parent. A later cleanup series is required to move > > > the VMID allocation out of the stage-2 domain allocation routine to this. > > > > > > Signed-off-by: Nicolin Chen <nicolinc@xxxxxxxxxx> > > > --- > > > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 18 ++++++++++++++ > > > include/uapi/linux/iommufd.h | 2 ++ > > > .../arm/arm-smmu-v3/arm-smmu-v3-iommufd.c | 24 +++++++++++++++++++ > > > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 1 + > > > 4 files changed, 45 insertions(+) > > > > I squashed the following changes to this commit (will be in v4). > > It replaces nested_domain->s2_parent with nested_domain->vsmmu > > Err, do we want to make a viommu a hard requirement to use nesting? Is > that what is happening here? For SMMUv3 driver, we have to make it a hard requirement since the invalidation can be only done with a vIOMMU, right? Nicolin