aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/setup_32.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c
index 1d4be07e15e..72b11d4557b 100644
--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -584,6 +584,9 @@ static void __init relocate_initrd(void)
printk(KERN_INFO "Copied RAMDISK from %016llx - %016llx to %08llx - %08llx\n",
ramdisk_image, ramdisk_image + ramdisk_size - 1,
ramdisk_here, ramdisk_here + ramdisk_size - 1);
+
+ /* need to free that, otherwise init highmem will reserve it again */
+ free_early(ramdisk_image, ramdisk_image+ramdisk_size);
}
#endif /* CONFIG_BLK_DEV_INITRD */
@@ -801,10 +804,6 @@ void __init setup_arch(char **cmdline_p)
init_ohci1394_dma_on_all_controllers();
#endif
- remapped_pgdat_init();
- sparse_init();
- zone_sizes_init();
-
/*
* NOTE: at this point the bootmem allocator is fully available.
*/
@@ -813,6 +812,10 @@ void __init setup_arch(char **cmdline_p)
relocate_initrd();
#endif
+ remapped_pgdat_init();
+ sparse_init();
+ zone_sizes_init();
+
paravirt_post_allocator_init();
dmi_scan_machine();