From 44fba0eb33f0cf1064e18f58db7b9a6bfed3b4a9 Mon Sep 17 00:00:00 2001 From: Mitchel Humpherys Date: Fri, 29 May 2015 11:04:26 -0700 Subject: [PATCH] iommu/arm-smmu: restrict virtual address range to 36 bits There appear to be bugs in the 4-level support of io-pgtable-arm. Work around this by forcing all VAs to be 36 bits maximum so that we only ever use 3 levels. Change-Id: I5354afad05f74e12c51b86c97cdf1b2e86b68949 Signed-off-by: Mitchel Humpherys --- drivers/iommu/arm-smmu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index e22ed91d27e1..bab3f386a6c2 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c @@ -2285,6 +2285,7 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu) #ifndef CONFIG_64BIT smmu->va_size = min(32UL, smmu->va_size); #endif + smmu->va_size = min(36UL, smmu->va_size); size = 0; if (id & ID2_PTFS_4K) size |= SZ_4K | SZ_2M | SZ_1G;