]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iommu/tegra241-cmdqv: Update uAPI to clarify HYP_OWN requirement
authorNicolin Chen <nicolinc@nvidia.com>
Fri, 13 Mar 2026 00:36:35 +0000 (17:36 -0700)
committerWill Deacon <will@kernel.org>
Tue, 24 Mar 2026 14:04:35 +0000 (14:04 +0000)
>From hardware implementation perspective, a guest tegra241-cmdqv hardware
is different than the host hardware:
 - Host HW is backed by a VINTF (HYP_OWN=1)
 - Guest HW is backed by a VINTF (HYP_OWN=0)

The kernel driver has an implementation requirement of the HYP_OWN bit in
the VM. So, VMM must follow that to allow the same copy of Linux to work.

Add this requirement to the uAPI, which is currently missing.

Fixes: 4dc0d12474f9 ("iommu/tegra241-cmdqv: Add user-space use support")
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Will Deacon <will@kernel.org>
include/uapi/linux/iommufd.h

index 1dafbc552d37de51a93a23d9ce1cf3db7abbbc85..f63edbe71d542b7a5a0e41295372e713129118df 100644 (file)
@@ -1052,6 +1052,11 @@ struct iommu_fault_alloc {
 enum iommu_viommu_type {
        IOMMU_VIOMMU_TYPE_DEFAULT = 0,
        IOMMU_VIOMMU_TYPE_ARM_SMMUV3 = 1,
+       /*
+        * TEGRA241_CMDQV requirements (otherwise, VCMDQs will not work)
+        * - Kernel will allocate a VINTF (HYP_OWN=0) to back this VIOMMU. So,
+        *   VMM must wire the HYP_OWN bit to 0 in guest VINTF_CONFIG register
+        */
        IOMMU_VIOMMU_TYPE_TEGRA241_CMDQV = 2,
 };