summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYong Wu <yong.wu@mediatek.com>2019-08-24 11:01:52 +0800
committerJoerg Roedel <jroedel@suse.de>2019-08-30 15:57:26 +0200
commit7f315c9da9f5e5f9ba720ca4b5e04e5ee91833f9 (patch)
treed9d4c468ce0c30f0116abaa7ae71f8ff10d3454c
parent5950b9541b509037aeb9e7b95f88a692bf3f46a3 (diff)
downloadlinux-7f315c9da9f5e5f9ba720ca4b5e04e5ee91833f9.tar.gz
linux-7f315c9da9f5e5f9ba720ca4b5e04e5ee91833f9.tar.bz2
linux-7f315c9da9f5e5f9ba720ca4b5e04e5ee91833f9.zip
iommu/io-pgtable-arm-v7s: Use ias/oas to check the valid iova/pa
Use ias/oas to check the valid iova/pa. Synchronize this checking with io-pgtable-arm.c. Signed-off-by: Yong Wu <yong.wu@mediatek.com> Acked-by: Will Deacon <will@kernel.org> Signed-off-by: Joerg Roedel <jroedel@suse.de>
-rw-r--r--drivers/iommu/io-pgtable-arm-v7s.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/iommu/io-pgtable-arm-v7s.c b/drivers/iommu/io-pgtable-arm-v7s.c
index 72f1880e0c9d..fa1b38f4c271 100644
--- a/drivers/iommu/io-pgtable-arm-v7s.c
+++ b/drivers/iommu/io-pgtable-arm-v7s.c
@@ -504,7 +504,8 @@ static int arm_v7s_map(struct io_pgtable_ops *ops, unsigned long iova,
if (!(prot & (IOMMU_READ | IOMMU_WRITE)))
return 0;
- if (WARN_ON(upper_32_bits(iova) || upper_32_bits(paddr)))
+ if (WARN_ON(iova >= (1ULL << data->iop.cfg.ias) ||
+ paddr >= (1ULL << data->iop.cfg.oas)))
return -ERANGE;
ret = __arm_v7s_map(data, iova, paddr, size, prot, 1, data->pgd);