diff options
author | Andi Kleen <ak@suse.de> | 2006-12-06 20:14:05 -0500 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-06 20:14:05 -0500 |
commit | 770d132f03ac15b12919f1bac481f4beda13e094 (patch) | |
tree | fdf8470cd380f2db1960102c928806f687f72938 /arch/i386/kernel/cpu/common.c | |
parent | ea7322decb974a4a3e804f96a0201e893ff88ce3 (diff) |
[PATCH] i386: Retrieve CLFLUSH size from CPUID
Also report it in /proc/cpuinfo similar to x86-64.
Needed for followon patch
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/i386/kernel/cpu/common.c')
-rw-r--r-- | arch/i386/kernel/cpu/common.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/i386/kernel/cpu/common.c b/arch/i386/kernel/cpu/common.c index 6958ae5e2fa5..cda41aef79ad 100644 --- a/arch/i386/kernel/cpu/common.c +++ b/arch/i386/kernel/cpu/common.c | |||
@@ -309,6 +309,8 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 * c) | |||
309 | #else | 309 | #else |
310 | c->apicid = (ebx >> 24) & 0xFF; | 310 | c->apicid = (ebx >> 24) & 0xFF; |
311 | #endif | 311 | #endif |
312 | if (c->x86_capability[0] & (1<<19)) | ||
313 | c->x86_clflush_size = ((ebx >> 8) & 0xff) * 8; | ||
312 | } else { | 314 | } else { |
313 | /* Have CPUID level 0 only - unheard of */ | 315 | /* Have CPUID level 0 only - unheard of */ |
314 | c->x86 = 4; | 316 | c->x86 = 4; |
@@ -373,6 +375,7 @@ void __cpuinit identify_cpu(struct cpuinfo_x86 *c) | |||
373 | c->x86_vendor_id[0] = '\0'; /* Unset */ | 375 | c->x86_vendor_id[0] = '\0'; /* Unset */ |
374 | c->x86_model_id[0] = '\0'; /* Unset */ | 376 | c->x86_model_id[0] = '\0'; /* Unset */ |
375 | c->x86_max_cores = 1; | 377 | c->x86_max_cores = 1; |
378 | c->x86_clflush_size = 32; | ||
376 | memset(&c->x86_capability, 0, sizeof c->x86_capability); | 379 | memset(&c->x86_capability, 0, sizeof c->x86_capability); |
377 | 380 | ||
378 | if (!have_cpuid_p()) { | 381 | if (!have_cpuid_p()) { |