diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-10-12 09:05:39 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-12 09:05:39 -0400 |
commit | a9b9e81c915e4a57ac3b21d1a7fa7ff184639780 (patch) | |
tree | 98304395fbb5b9c74fca35b196cd414c1949f280 /arch/x86/kernel/setup.c | |
parent | a8b71a2810386a5ac8f43d2095fe3355f0d8db37 (diff) | |
parent | fd048088306656824958e7783ffcee27e241b361 (diff) |
Merge branch 'linus' into x86/memory-corruption-check
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r-- | arch/x86/kernel/setup.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 3ce3edfcc3cd..21b8e0a59780 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -223,6 +223,9 @@ unsigned long saved_video_mode; | |||
223 | #define RAMDISK_LOAD_FLAG 0x4000 | 223 | #define RAMDISK_LOAD_FLAG 0x4000 |
224 | 224 | ||
225 | static char __initdata command_line[COMMAND_LINE_SIZE]; | 225 | static char __initdata command_line[COMMAND_LINE_SIZE]; |
226 | #ifdef CONFIG_CMDLINE_BOOL | ||
227 | static char __initdata builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE; | ||
228 | #endif | ||
226 | 229 | ||
227 | #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE) | 230 | #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE) |
228 | struct edd edd; | 231 | struct edd edd; |
@@ -849,11 +852,28 @@ void __init setup_arch(char **cmdline_p) | |||
849 | bss_resource.start = virt_to_phys(&__bss_start); | 852 | bss_resource.start = virt_to_phys(&__bss_start); |
850 | bss_resource.end = virt_to_phys(&__bss_stop)-1; | 853 | bss_resource.end = virt_to_phys(&__bss_stop)-1; |
851 | 854 | ||
855 | #ifdef CONFIG_CMDLINE_BOOL | ||
856 | #ifdef CONFIG_CMDLINE_OVERRIDE | ||
857 | strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); | ||
858 | #else | ||
859 | if (builtin_cmdline[0]) { | ||
860 | /* append boot loader cmdline to builtin */ | ||
861 | strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE); | ||
862 | strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE); | ||
863 | strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); | ||
864 | } | ||
865 | #endif | ||
866 | #endif | ||
867 | |||
852 | strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); | 868 | strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); |
853 | *cmdline_p = command_line; | 869 | *cmdline_p = command_line; |
854 | 870 | ||
855 | parse_early_param(); | 871 | parse_early_param(); |
856 | 872 | ||
873 | #ifdef CONFIG_X86_64 | ||
874 | check_efer(); | ||
875 | #endif | ||
876 | |||
857 | #if defined(CONFIG_VMI) && defined(CONFIG_X86_32) | 877 | #if defined(CONFIG_VMI) && defined(CONFIG_X86_32) |
858 | /* | 878 | /* |
859 | * Must be before kernel pagetables are setup | 879 | * Must be before kernel pagetables are setup |
@@ -926,7 +946,8 @@ void __init setup_arch(char **cmdline_p) | |||
926 | #else | 946 | #else |
927 | num_physpages = max_pfn; | 947 | num_physpages = max_pfn; |
928 | 948 | ||
929 | check_efer(); | 949 | if (cpu_has_x2apic) |
950 | check_x2apic(); | ||
930 | 951 | ||
931 | /* How many end-of-memory variables you have, grandma! */ | 952 | /* How many end-of-memory variables you have, grandma! */ |
932 | /* need this before calling reserve_initrd */ | 953 | /* need this before calling reserve_initrd */ |