summaryrefslogtreecommitdiff
path: root/arch/arm64/mm
diff options
context:
space:
mode:
authorSebastian Ene <sebastianene@google.com>2024-09-09 12:47:20 +0000
committerMarc Zyngier <maz@kernel.org>2024-09-10 21:32:51 +0100
commit79c4c7284f92d5e780c8532c343ca2cacfaf5125 (patch)
tree9228125477894769c1e07c42590bc04ff8844fb5 /arch/arm64/mm
parent9182301a7bd2564fb050ade9820333c8b1adfcc2 (diff)
downloadlwn-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.c4
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)