diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 10:52:32 +0200 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 10:52:32 +0200 |
commit | 9ca33eb6981549c0d1b7aea7f99f1ba602161356 (patch) | |
tree | 9b74231b83fdf834f40fac40b95b0b6656835b9b | |
parent | d4d35854a1cf7fb170c8e133a5e40a9d19e7fc17 (diff) |
[PATCH] Use early CPU identify before early command line parsing
This makes it possible to modify CPU flags in command line
options without hacks.
And remove another copy in head64.c
Signed-off-by: Andi Kleen <ak@suse.de>
-rw-r--r-- | arch/x86_64/kernel/head64.c | 19 | ||||
-rw-r--r-- | arch/x86_64/kernel/setup.c | 4 |
2 files changed, 2 insertions, 21 deletions
diff --git a/arch/x86_64/kernel/head64.c b/arch/x86_64/kernel/head64.c index bacbd75c63a..f2461fde9f8 100644 --- a/arch/x86_64/kernel/head64.c +++ b/arch/x86_64/kernel/head64.c @@ -56,24 +56,6 @@ static void __init copy_bootdata(char *real_mode_data) printk("Bootdata ok (command line is %s)\n", saved_command_line); } -static void __init setup_boot_cpu_data(void) -{ - unsigned int dummy, eax; - - /* get vendor info */ - cpuid(0, (unsigned int *)&boot_cpu_data.cpuid_level, - (unsigned int *)&boot_cpu_data.x86_vendor_id[0], - (unsigned int *)&boot_cpu_data.x86_vendor_id[8], - (unsigned int *)&boot_cpu_data.x86_vendor_id[4]); - - /* get cpu type */ - cpuid(1, &eax, &dummy, &dummy, - (unsigned int *) &boot_cpu_data.x86_capability); - boot_cpu_data.x86 = (eax >> 8) & 0xf; - boot_cpu_data.x86_model = (eax >> 4) & 0xf; - boot_cpu_data.x86_mask = eax & 0xf; -} - void __init x86_64_start_kernel(char * real_mode_data) { char *s; @@ -117,6 +99,5 @@ void __init x86_64_start_kernel(char * real_mode_data) if (__pa_symbol(&_end) >= KERNEL_TEXT_SIZE) panic("Kernel too big for kernel mapping\n"); - setup_boot_cpu_data(); start_kernel(); } diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c index ddc3b2d9a16..73f1cdd140f 100644 --- a/arch/x86_64/kernel/setup.c +++ b/arch/x86_64/kernel/setup.c @@ -545,10 +545,10 @@ void __init setup_arch(char **cmdline_p) data_resource.start = virt_to_phys(&_etext); data_resource.end = virt_to_phys(&_edata)-1; - parse_cmdline_early(cmdline_p); - early_identify_cpu(&boot_cpu_data); + parse_cmdline_early(cmdline_p); + /* * partially used pages are not usable - thus * we are rounding upwards: |