Commit 37992b7f authored by Björn Töpel's avatar Björn Töpel Committed by Palmer Dabbelt

riscv: mm: Take memory hotplug read-lock during kernel page table dump

During memory hot remove, the ptdump functionality can end up touching
stale data. Avoid any potential crashes (or worse), by holding the
memory hotplug read-lock while traversing the page table.

This change is analogous to arm64's commit bf2b59f6 ("arm64/mm:
Hold memory hotplug lock while walking for kernel page table dump").
Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
Reviewed-by: default avatarOscar Salvador <osalvador@suse.de>
Signed-off-by: default avatarBjörn Töpel <bjorn@rivosinc.com>
Link: https://lore.kernel.org/r/20240605114100.315918-8-bjorn@kernel.orgSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
parent c75a74f4
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include <linux/efi.h> #include <linux/efi.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/memory_hotplug.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/ptdump.h> #include <linux/ptdump.h>
...@@ -370,7 +371,9 @@ bool ptdump_check_wx(void) ...@@ -370,7 +371,9 @@ bool ptdump_check_wx(void)
static int ptdump_show(struct seq_file *m, void *v) static int ptdump_show(struct seq_file *m, void *v)
{ {
get_online_mems();
ptdump_walk(m, m->private); ptdump_walk(m, m->private);
put_online_mems();
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment