diff options
author | Sebastian Ene <sebastianene@google.com> | 2024-09-09 12:47:20 +0000 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2024-09-10 21:32:51 +0100 |
commit | 79c4c7284f92d5e780c8532c343ca2cacfaf5125 (patch) | |
tree | 9228125477894769c1e07c42590bc04ff8844fb5 /arch/arm64/mm | |
parent | 9182301a7bd2564fb050ade9820333c8b1adfcc2 (diff) | |
download | lwn-79c4c7284f92d5e780c8532c343ca2cacfaf5125.tar.gz lwn-79c4c7284f92d5e780c8532c343ca2cacfaf5125.zip |
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 <sebastianene@google.com>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20240909124721.1672199-5-sebastianene@google.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'arch/arm64/mm')
-rw-r--r-- | arch/arm64/mm/ptdump.c | 4 |
1 files changed, 2 insertions, 2 deletions
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) |