diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 04:52:32 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:32 -0400 |
commit | 9ca33eb6981549c0d1b7aea7f99f1ba602161356 (patch) | |
tree | 9b74231b83fdf834f40fac40b95b0b6656835b9b /arch/x86_64/kernel/head64.c | |
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>
Diffstat (limited to 'arch/x86_64/kernel/head64.c')
-rw-r--r-- | arch/x86_64/kernel/head64.c | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/arch/x86_64/kernel/head64.c b/arch/x86_64/kernel/head64.c index bacbd75c63ad..f2461fde9f8f 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) | |||
56 | printk("Bootdata ok (command line is %s)\n", saved_command_line); | 56 | printk("Bootdata ok (command line is %s)\n", saved_command_line); |
57 | } | 57 | } |
58 | 58 | ||
59 | static void __init setup_boot_cpu_data(void) | ||
60 | { | ||
61 | unsigned int dummy, eax; | ||
62 | |||
63 | /* get vendor info */ | ||
64 | cpuid(0, (unsigned int *)&boot_cpu_data.cpuid_level, | ||
65 | (unsigned int *)&boot_cpu_data.x86_vendor_id[0], | ||
66 | (unsigned int *)&boot_cpu_data.x86_vendor_id[8], | ||
67 | (unsigned int *)&boot_cpu_data.x86_vendor_id[4]); | ||
68 | |||
69 | /* get cpu type */ | ||
70 | cpuid(1, &eax, &dummy, &dummy, | ||
71 | (unsigned int *) &boot_cpu_data.x86_capability); | ||
72 | boot_cpu_data.x86 = (eax >> 8) & 0xf; | ||
73 | boot_cpu_data.x86_model = (eax >> 4) & 0xf; | ||
74 | boot_cpu_data.x86_mask = eax & 0xf; | ||
75 | } | ||
76 | |||
77 | void __init x86_64_start_kernel(char * real_mode_data) | 59 | void __init x86_64_start_kernel(char * real_mode_data) |
78 | { | 60 | { |
79 | char *s; | 61 | char *s; |
@@ -117,6 +99,5 @@ void __init x86_64_start_kernel(char * real_mode_data) | |||
117 | if (__pa_symbol(&_end) >= KERNEL_TEXT_SIZE) | 99 | if (__pa_symbol(&_end) >= KERNEL_TEXT_SIZE) |
118 | panic("Kernel too big for kernel mapping\n"); | 100 | panic("Kernel too big for kernel mapping\n"); |
119 | 101 | ||
120 | setup_boot_cpu_data(); | ||
121 | start_kernel(); | 102 | start_kernel(); |
122 | } | 103 | } |