On Thu, Oct 17, 2024 at 09:43:22AM -0700, Nicolin Chen wrote:
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@nvidia.com
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?
Oh, right yes, OK
Jason