summary refs log tree commit diff
path: root/arch
diff options
context:
space:
mode:
authorJuergen Gross <jgross@suse.com>2020-02-21 11:38:51 +0100
committerThomas Gleixner <tglx@linutronix.de>2020-02-29 12:43:10 +0100
commitbba42affa732d6fd5bd5c9678e6deacde2de1547 (patch)
tree2c581d0973e85fe3912d0721edb8e34323fefe75 /arch
parent99bcd4a6e5b8ba201fdd252f1054689884899fee (diff)
downloadlinux-bba42affa732d6fd5bd5c9678e6deacde2de1547.tar.gz
x86/mm: Fix dump_pagetables with Xen PV
Commit 2ae27137b2db89 ("x86: mm: convert dump_pagetables to use
walk_page_range") broke Xen PV guests as the hypervisor reserved hole in
the memory map was not taken into account.

Fix that by starting the kernel range only at GUARD_HOLE_END_ADDR.

Fixes: 2ae27137b2db89 ("x86: mm: convert dump_pagetables to use walk_page_range")
Reported-by: Julien Grall <julien@xen.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Julien Grall <julien@xen.org>
Link: https://lkml.kernel.org/r/20200221103851.7855-1-jgross@suse.com

Diffstat (limited to 'arch')
-rw-r--r--arch/x86/mm/dump_pagetables.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
index 64229dad7eab..69309cd56fdf 100644
--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -363,13 +363,8 @@ static void ptdump_walk_pgd_level_core(struct seq_file *m,
 {
 	const struct ptdump_range ptdump_ranges[] = {
 #ifdef CONFIG_X86_64
-
-#define normalize_addr_shift (64 - (__VIRTUAL_MASK_SHIFT + 1))
-#define normalize_addr(u) ((signed long)((u) << normalize_addr_shift) >> \
-			   normalize_addr_shift)
-
 	{0, PTRS_PER_PGD * PGD_LEVEL_MULT / 2},
-	{normalize_addr(PTRS_PER_PGD * PGD_LEVEL_MULT / 2), ~0UL},
+	{GUARD_HOLE_END_ADDR, ~0UL},
 #else
 	{0, ~0UL},
 #endif