Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfashe...
[pandora-kernel.git] / arch / x86 / kernel / setup.c
index b4aacb9..2d88858 100644 (file)
@@ -597,11 +597,11 @@ void __init setup_arch(char **cmdline_p)
        memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data));
        visws_early_detect();
        pre_setup_arch_hook();
-       early_cpu_init();
 #else
        printk(KERN_INFO "Command line: %s\n", boot_command_line);
 #endif
 
+       early_cpu_init();
        early_ioremap_init();
 
        ROOT_DEV = old_decode_dev(boot_params.hdr.root_dev);
@@ -665,9 +665,6 @@ void __init setup_arch(char **cmdline_p)
        bss_resource.start = virt_to_phys(&__bss_start);
        bss_resource.end = virt_to_phys(&__bss_stop)-1;
 
-#ifdef CONFIG_X86_64
-       early_cpu_init();
-#endif
        strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
        *cmdline_p = command_line;
 
@@ -791,10 +788,6 @@ void __init setup_arch(char **cmdline_p)
 
        initmem_init(0, max_pfn);
 
-#ifdef CONFIG_X86_64
-       dma32_reserve_bootmem();
-#endif
-
 #ifdef CONFIG_ACPI_SLEEP
        /*
         * Reserve low memory region for sleep support.
@@ -809,6 +802,15 @@ void __init setup_arch(char **cmdline_p)
 #endif
        reserve_crashkernel();
 
+#ifdef CONFIG_X86_64
+       /*
+        * dma32_reserve_bootmem() allocates bootmem which may conflict
+        * with the crashkernel command line, so do that after
+        * reserve_crashkernel()
+        */
+       dma32_reserve_bootmem();
+#endif
+
        reserve_ibft_region();
 
 #ifdef CONFIG_KVM_CLOCK