Revert 'x86: Fix system crash when loading with "reservetop" parameter'
authorYinghai Lu <yinghai@kernel.org>
Sat, 19 Sep 2009 18:07:57 +0000 (11:07 -0700)
committerIngo Molnar <mingo@elte.hu>
Sat, 19 Sep 2009 18:31:33 +0000 (20:31 +0200)
After close looking, commit 8126dec3 will break:

 1. some cpu feature  in early stage too, like cpu_has_x2apic
 2. will break built-in-command line
 3. will break other memmap= and mem=
 4. early_dbgp and early_console that will use early_ioremap to access mmio (?)

So revert it.

Reported-by: Hugh Dickins <hugh.dickins@tiscali.co.uk>,
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Cc: Andrew Morton <akpm@linux-foundation.org>,
LKML-Reference: <4AB51DFD.2000904@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/setup.c

index 19f15c4076fb6f3f57afa01ddc211dbdce1ae202..f5baa2ae0c8738872b5eced64de3edcb62979829 100644 (file)
@@ -712,21 +712,6 @@ void __init setup_arch(char **cmdline_p)
        printk(KERN_INFO "Command line: %s\n", boot_command_line);
 #endif
 
-       strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
-       *cmdline_p = command_line;
-
-#ifdef CONFIG_X86_64
-       /*
-        * Must call this twice: Once just to detect whether hardware doesn't
-        * support NX (so that the early EHCI debug console setup can safely
-        * call set_fixmap(), and then again after parsing early parameters to
-        * honor the respective command line option.
-        */
-       check_efer();
-#endif
-
-       parse_early_param();
-
        /* VMI may relocate the fixmap; do this before touching ioremap area */
        vmi_init();
 
@@ -809,6 +794,21 @@ void __init setup_arch(char **cmdline_p)
 #endif
 #endif
 
+       strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
+       *cmdline_p = command_line;
+
+#ifdef CONFIG_X86_64
+       /*
+        * Must call this twice: Once just to detect whether hardware doesn't
+        * support NX (so that the early EHCI debug console setup can safely
+        * call set_fixmap(), and then again after parsing early parameters to
+        * honor the respective command line option.
+        */
+       check_efer();
+#endif
+
+       parse_early_param();
+
 #ifdef CONFIG_X86_64
        check_efer();
 #endif