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 <mitchelh@codeaurora.org>
This commit is contained in:
Mitchel Humpherys 2015-05-29 11:04:26 -07:00 committed by David Keitel
parent eb0c3e8d4b
commit 44fba0eb33

View file

@ -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;