summaryrefslogtreecommitdiffstats
path: root/usr
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2014-09-01 17:24:48 +0200
committerWill Deacon <will.deacon@arm.com>2014-09-16 20:15:18 +0200
commit28d6007ba2fd344164e01ef300af7f621e9e6b0d (patch)
tree7023d55de7fec73737bfbb2c30cf44163dc2aba8 /usr
parentiommu/arm-smmu: use page shift instead of page size to avoid division (diff)
downloadlinux-28d6007ba2fd344164e01ef300af7f621e9e6b0d.tar.xz
linux-28d6007ba2fd344164e01ef300af7f621e9e6b0d.zip
iommu/arm-smmu: don't bother truncating the s1 output size to VA_BITS
In order for nested translation to work correctly, we need to ensure that the maximum output address size from stage-1 is <= the maximum supported input address size to stage-2. The latter is currently defined by VA_BITS, since we make use of the CPU page table functions for allocating out tables and so the driver currently enforces this restriction by truncating the stage-1 output size during probe. In reality, this doesn't make a lot of sense; the guest OS is responsible for managing the stage-1 page tables, so we actually just need to ensure that the ID registers of the virtual SMMU interface only advertise the supported stage-2 input size. This patch fixes the problem by treating the stage-1 and stage-2 input address sizes separately. Reported-by: Tirumalesh Chalamarla <tchalamarla@cavium.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'usr')
0 files changed, 0 insertions, 0 deletions