From 0d4f40b70ed6b905e21a8de006a80415ba76997f Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Sun, 20 Jul 2008 17:24:03 +0200 Subject: [PATCH] x86: fix kernel_physical_mapping_init() for large x86 systems based on e22146e610bb7aed63282148740ab1d1b91e1d90 upstream Fix bug in kernel_physical_mapping_init() that causes kernel page table to be built incorrectly for systems with greater than 512GB of memory. Signed-off-by: Jack Steiner Cc: linux-mm@kvack.org Signed-off-by: Ingo Molnar Cc: Oliver Pinter Signed-off-by: Ingo Molnar Signed-off-by: Greg Kroah-Hartman --- arch/x86/mm/init_64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index b2c5231c46864..8e47740b13a6c 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -427,7 +427,7 @@ void __init_refok init_memory_mapping(unsigned long start, unsigned long end) else pud = alloc_low_page(&pud_phys); - next = start + PGDIR_SIZE; + next = (start + PGDIR_SIZE) & PGDIR_MASK; if (next > end) next = end; phys_pud_init(pud, __pa(start), __pa(next)); -- 2.47.2