diff options
author | Hiroshi Doyu <hdoyu@nvidia.com> | 2013-04-03 11:55:28 +0300 |
---|---|---|
committer | Harshada Kale <hkale@nvidia.com> | 2013-06-10 03:47:44 -0700 |
commit | 0dfd32925e3b4ee6d4a8e574af1fc6a65ed849f5 (patch) | |
tree | 32051e5c559c8b2b852cbdd815dbe81afce05406 | |
parent | cf02b0d288d0ad9d2b27e6c808caf7062a53d9ae (diff) |
iommu/tegra: smmu: Mask pagetable index correctly
Mask pagetable index to avoid overrun by removing unnecessary bit at
first place.
bug 1286500
Change-Id: I1bccd4d4b1c8510b540d7c0c60e1997ba63f952b
(cherry picked from commit 88bc3c325df13f118ae5a3e492f713119a125e39)
Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com>
Reviewed-on: http://git-master/r/234119
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
-rw-r--r-- | drivers/iommu/tegra-smmu.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c index 614807f1ae95..ad3e5a399e73 100644 --- a/drivers/iommu/tegra-smmu.c +++ b/drivers/iommu/tegra-smmu.c @@ -153,7 +153,7 @@ enum { #define SMMU_PTE_SHIFT 12 #define SMMU_PFN_MASK 0x000fffff -#define SMMU_ADDR_TO_PFN(addr) ((addr) >> 12) +#define SMMU_ADDR_TO_PFN(addr) (((addr) >> 12) & (BIT(10) - 1)) #define SMMU_ADDR_TO_PDN(addr) ((addr) >> 22) #define SMMU_PDN_TO_ADDR(pdn) ((pdn) << 22) @@ -541,7 +541,7 @@ static unsigned long *locate_pte(struct smmu_as *as, } *count = &as->pte_count[pdn]; - return &ptbl[ptn % SMMU_PTBL_COUNT]; + return &ptbl[ptn]; } #ifdef CONFIG_SMMU_SIG_DEBUG |