diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-08-19 18:18:21 +0200 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-08-19 18:18:21 +0200 |
| commit | ac8649cebe6d84d3333893b67b2023fef90772e5 (patch) | |
| tree | 07b614ce1324e8f0590d12923606fc4c2ac7fed6 /mm/ptdump.c | |
| parent | b2c0abc1f2778c28522bc44f5134772809949717 (diff) | |
| parent | bf3be28f6721e24961992ebb9e61c0cf21a56806 (diff) | |
| download | linux-stable-linux-rolling-lts.tar.gz linux-stable-linux-rolling-lts.zip | |
Merge v6.18.45linux-rolling-lts
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm/ptdump.c')
| -rw-r--r-- | mm/ptdump.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mm/ptdump.c b/mm/ptdump.c index b600c7f864b8..217ebb6edc61 100644 --- a/mm/ptdump.c +++ b/mm/ptdump.c @@ -178,11 +178,18 @@ void ptdump_walk_pgd(struct ptdump_state *st, struct mm_struct *mm, pgd_t *pgd) get_online_mems(); mmap_write_lock(mm); + /* To stabilise kernel page tables we must hold the init_mm lock too. */ + if (mm != &init_mm) + mmap_write_lock_nested(&init_mm, SINGLE_DEPTH_NESTING); + while (range->start != range->end) { walk_page_range_debug(mm, range->start, range->end, &ptdump_ops, pgd, st); range++; } + + if (mm != &init_mm) + mmap_write_unlock(&init_mm); mmap_write_unlock(mm); put_online_mems(); |
