]> git.baikalelectronics.ru Git - kernel.git/commit
iommu/arm-smmu: fix corner cases in address size calculations
authorWill Deacon <will.deacon@arm.com>
Wed, 23 Jul 2014 12:20:43 +0000 (13:20 +0100)
committerWill Deacon <will.deacon@arm.com>
Tue, 2 Sep 2014 09:04:43 +0000 (10:04 +0100)
commitf5e3211de4d419a763aa7f8dc55bdb3283617b6b
tree99a52a879b40a417e07f022d2b1019bd2dd4b91d
parente64f5e3a5154f1e6494bc5ec0f122668e0afcbc4
iommu/arm-smmu: fix corner cases in address size calculations

Working out the usable address sizes for the SMMU is surprisingly tricky.
We must take into account both the limitations of the hardware for VA,
IPA and PA sizes but also any restrictions imposed by the Linux page
table code, particularly when dealing with nested translation (where the
IPA size is limited by the input address size at stage-2).

This patch fixes a few corner cases in our address size handling so that
we correctly deal with 40-bit addresses in TTBCR2 and restrict the IPA
size differently depending on whether or not we have support for nested
translation.

Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/arm-smmu.c