提交 4fba9885 编写于 作者: N Nicolin Chen 提交者: Joerg Roedel

iommu/tegra-smmu: Fix iova->phys translation

IOVA might not be always 4KB aligned. So tegra_smmu_iova_to_phys
function needs to add on the lower 12-bit offset from input iova.
Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
Acked-by: NThierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20200911071643.17212-3-nicoleotsuka@gmail.comSigned-off-by: NJoerg Roedel <jroedel@suse.de>
上级 82fa58e8
...@@ -795,7 +795,7 @@ static phys_addr_t tegra_smmu_iova_to_phys(struct iommu_domain *domain, ...@@ -795,7 +795,7 @@ static phys_addr_t tegra_smmu_iova_to_phys(struct iommu_domain *domain,
pfn = *pte & as->smmu->pfn_mask; pfn = *pte & as->smmu->pfn_mask;
return SMMU_PFN_PHYS(pfn); return SMMU_PFN_PHYS(pfn) + SMMU_OFFSET_IN_PAGE(iova);
} }
static struct tegra_smmu *tegra_smmu_find(struct device_node *np) static struct tegra_smmu *tegra_smmu_find(struct device_node *np)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册