From: Sebastian Ene Date: Mon, 9 Sep 2024 12:47:20 +0000 (+0000) Subject: arm64: ptdump: Don't override the level when operating on the stage-2 tables X-Git-Tag: v6.12-rc1~11^2~13^2~1^2~1 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=79c4c7284f92d5e780c8532c343ca2cacfaf5125;p=linux-block.git arm64: ptdump: Don't override the level when operating on the stage-2 tables Ptdump uses the init_mm structure directly to dump the kernel pagetables. When ptdump is called on the stage-2 pagetables, this mm argument is not used. Prevent the level from being overwritten by checking the argument against NULL. Signed-off-by: Sebastian Ene Acked-by: Will Deacon Link: https://lore.kernel.org/r/20240909124721.1672199-5-sebastianene@google.com Signed-off-by: Marc Zyngier --- diff --git a/arch/arm64/mm/ptdump.c b/arch/arm64/mm/ptdump.c index ca53ef274a8b..264c5f9b97d8 100644 --- a/arch/arm64/mm/ptdump.c +++ b/arch/arm64/mm/ptdump.c @@ -197,8 +197,8 @@ void note_page(struct ptdump_state *pt_st, unsigned long addr, int level, u64 prot = 0; /* check if the current level has been folded dynamically */ - if ((level == 1 && mm_p4d_folded(st->mm)) || - (level == 2 && mm_pud_folded(st->mm))) + if (st->mm && ((level == 1 && mm_p4d_folded(st->mm)) || + (level == 2 && mm_pud_folded(st->mm)))) level = 0; if (level >= 0)