In rare transient cases, not yet made possible, pte_offset_map() and
pte_offset_map_lock() may not find a page table: handle appropriately.

Signed-off-by: Hugh Dickins <hu...@google.com>
Acked-by: Catalin Marinas <catalin.mari...@arm.com>
---
 arch/arm64/mm/fault.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index cb21ccd7940d..f3aaba853547 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -177,6 +177,9 @@ static void show_pte(unsigned long addr)
                        break;
 
                ptep = pte_offset_map(pmdp, addr);
+               if (!ptep)
+                       break;
+
                pte = READ_ONCE(*ptep);
                pr_cont(", pte=%016llx", pte_val(pte));
                pte_unmap(ptep);
-- 
2.35.3

Reply via email to