[PATCH umr] Skip ahead if PDE entry is actually a PTE entry.

Tom St Denis tom.stdenis at amd.com
Fri Nov 3 23:54:27 UTC 2017


Signed-off-by: Tom St Denis <tom.stdenis at amd.com>
---
 src/lib/read_vram.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/lib/read_vram.c b/src/lib/read_vram.c
index 0df48dadec12..5d9523476e25 100644
--- a/src/lib/read_vram.c
+++ b/src/lib/read_vram.c
@@ -522,6 +522,11 @@ static int umr_access_vram_ai(struct umr_asic *asic, uint32_t vmid,
 							(int)pde_fields.pte);
 				memcpy(&pde_array[pde_cnt++], &pde_fields, sizeof pde_fields);
 
+				if (pde_fields.pte) {
+					pte_entry = pde_entry;
+					goto pde_is_pte;
+				}
+
 				if (!pde_fields.system)
 					pde_fields.pte_base_addr -= vm_fb_offset;
 
@@ -539,6 +544,7 @@ static int umr_access_vram_ai(struct umr_asic *asic, uint32_t vmid,
 				return -1;
 
 			// decode PTE values
+pde_is_pte:
 			pte_fields.page_base_addr = pte_entry & 0xFFFFFFFFFF000ULL;
 			pte_fields.fragment       = (pte_entry >> 7)  & 0x1F;
 			pte_fields.system         = (pte_entry >> 1) & 1;
-- 
2.12.0



More information about the amd-gfx mailing list