aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-07-01 19:46:33 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 07:16:27 -0400
commit574977a2edde0148ea365008dceb0c2594d10b11 (patch)
treef20b4093034b5a9293dba7bc132778aebbe41e26 /arch/x86
parentaea5f9f89bae5d5f9eb3fe3cddedbbfb82e6e44f (diff)
x86_64/setup: unconditionally populate the pgd
When allocating a new pud, unconditionally populate the pgd (why did we bother to create a new pud if we weren't going to populate it?). This will only happen if the pgd slot was empty, since any existing pud will be reused. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: Stephen Tweedie <sct@redhat.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Cc: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/mm/init_64.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index b10b7f17ea58..77d129d62c97 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -616,9 +616,8 @@ unsigned long __init_refok init_memory_mapping(unsigned long start, unsigned lon
616 616
617 last_map_addr = phys_pud_init(pud, __pa(start), __pa(next)); 617 last_map_addr = phys_pud_init(pud, __pa(start), __pa(next));
618 unmap_low_page(pud); 618 unmap_low_page(pud);
619 if (!after_bootmem) 619 pgd_populate(&init_mm, pgd_offset_k(start),
620 pgd_populate(&init_mm, pgd_offset_k(start), 620 __va(pud_phys));
621 __va(pud_phys));
622 } 621 }
623 622
624 if (!after_bootmem) 623 if (!after_bootmem)