mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-13 22:25:03 +00:00
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: Nicolin Chen <nicoleotsuka@gmail.com> Acked-by: Thierry Reding <treding@nvidia.com> Link: https://lore.kernel.org/r/20200911071643.17212-3-nicoleotsuka@gmail.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
82fa58e81d
commit
4fba98859b
1 changed files with 1 additions and 1 deletions
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue