[PATCH v1 8/8] iommu/arm-smmu-v3: Probe a guest-level Realm VSMMU via RSI commands

Nicolin Chen nicolinc at nvidia.com
Wed Sep 9 21:23:34 PDT 2026


On Wed, Sep 09, 2026 at 08:32:51PM -0700, Nicolin Chen wrote:
> @@ -5542,6 +5591,12 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
>  	}
>  	ioaddr = res->start;
>  
> +	if (is_realm_world()) {
> +		ret = arm_smmu_probe_realm_vsmmu(smmu, res);
> +		if (ret)
> +			return ret;

Sashiko pointed out a new finding (didn't appear in my local runs)
that arm_smmu_impl_probe() would allow an untrusted hypervisor to
provide a malicious ACPI/DT table specifying a vendor extension.

I think it's valid, So, we likely need a guard, until impl has RMM
level support with additional RSI validation:

-	smmu = arm_smmu_impl_probe(smmu);
-	if (IS_ERR(smmu))
-		return PTR_ERR(smmu);
+	if (!is_realm_world()) {
+		smmu = arm_smmu_impl_probe(smmu);
+		if (IS_ERR(smmu))
+			return PTR_ERR(smmu);
+	}

Nicolin



More information about the linux-arm-kernel mailing list