x86: clean up relocate_initrd

1. move that before zone_sizes_init ...
2. add free_early for one old one, otherwise it will be be reserved again
   when we init highmem.

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Yinghai Lu
2008-06-13 20:07:03 -07:00
committed by Ingo Molnar
parent cc1050bafe
commit 9a27f5c516

View File

@@ -584,6 +584,9 @@ static void __init relocate_initrd(void)
printk(KERN_INFO "Copied RAMDISK from %016llx - %016llx to %08llx - %08llx\n", printk(KERN_INFO "Copied RAMDISK from %016llx - %016llx to %08llx - %08llx\n",
ramdisk_image, ramdisk_image + ramdisk_size - 1, ramdisk_image, ramdisk_image + ramdisk_size - 1,
ramdisk_here, ramdisk_here + 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 */ #endif /* CONFIG_BLK_DEV_INITRD */
@@ -801,10 +804,6 @@ void __init setup_arch(char **cmdline_p)
init_ohci1394_dma_on_all_controllers(); init_ohci1394_dma_on_all_controllers();
#endif #endif
remapped_pgdat_init();
sparse_init();
zone_sizes_init();
/* /*
* NOTE: at this point the bootmem allocator is fully available. * NOTE: at this point the bootmem allocator is fully available.
*/ */
@@ -813,6 +812,10 @@ void __init setup_arch(char **cmdline_p)
relocate_initrd(); relocate_initrd();
#endif #endif
remapped_pgdat_init();
sparse_init();
zone_sizes_init();
paravirt_post_allocator_init(); paravirt_post_allocator_init();
dmi_scan_machine(); dmi_scan_machine();