|
@@ -2140,21 +2140,9 @@ static phys_addr_t amd_iommu_iova_to_phys(struct iommu_domain *dom,
|
|
|
phys_addr_t paddr;
|
|
|
u64 *pte;
|
|
|
|
|
|
- pte = &domain->pt_root[IOMMU_PTE_L2_INDEX(iova)];
|
|
|
+ pte = fetch_pte(domain, iova);
|
|
|
|
|
|
- if (!IOMMU_PTE_PRESENT(*pte))
|
|
|
- return 0;
|
|
|
-
|
|
|
- pte = IOMMU_PTE_PAGE(*pte);
|
|
|
- pte = &pte[IOMMU_PTE_L1_INDEX(iova)];
|
|
|
-
|
|
|
- if (!IOMMU_PTE_PRESENT(*pte))
|
|
|
- return 0;
|
|
|
-
|
|
|
- pte = IOMMU_PTE_PAGE(*pte);
|
|
|
- pte = &pte[IOMMU_PTE_L0_INDEX(iova)];
|
|
|
-
|
|
|
- if (!IOMMU_PTE_PRESENT(*pte))
|
|
|
+ if (!pte || !IOMMU_PTE_PRESENT(*pte))
|
|
|
return 0;
|
|
|
|
|
|
paddr = *pte & IOMMU_PAGE_MASK;
|