iommu/io-pgtable-arm: Ensure ARM_64_LPAE_S2_TCR_RES1 is unsigned
authorWill Deacon <will@kernel.org>
Fri, 10 Jan 2020 12:22:16 +0000 (12:22 +0000)
committerWill Deacon <will@kernel.org>
Fri, 10 Jan 2020 15:52:24 +0000 (15:52 +0000)
commit6f932ad369a3c3f853ffc5d93de9a73420e862b1
tree5b148da842f0e636f939e4e4c803654ac8351d22
parent7618e479098226799207e021e8b0c2c28a23c96b
iommu/io-pgtable-arm: Ensure ARM_64_LPAE_S2_TCR_RES1 is unsigned

ARM_64_LPAE_S2_TCR_RES1 is intended to map to bit 31 of the VTCR register,
which is required to be set to 1 by the architecture. Unfortunately, we
accidentally treat this as a signed quantity which means we also set the
upper 32 bits of the VTCR to one, and they are required to be zero.

Treat ARM_64_LPAE_S2_TCR_RES1 as unsigned to avoid the unwanted
sign-extension up to 64 bits.

Cc: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
drivers/iommu/io-pgtable-arm.c