aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/amd.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-08-24 06:25:44 -0400
committerIngo Molnar <mingo@elte.hu>2009-08-24 06:25:54 -0400
commit5f9ece02401116b29eb04396b99ea092acb75dd8 (patch)
treee10386e2dc63c275646b4eb0bed857da7bf86c6a /arch/x86/kernel/cpu/amd.c
parent9f51e24ee8b5a1595b6a5ac0c2be278a16488e75 (diff)
parent422bef879e84104fee6dc68ded0e371dbeb5f88e (diff)
Merge commit 'v2.6.31-rc7' into x86/cleanups
Merge reason: we were on -rc1 before - go up to -rc7 Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/cpu/amd.c')
-rw-r--r--arch/x86/kernel/cpu/amd.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index c6eb02e69875..83b217c7225f 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -358,7 +358,7 @@ static void __cpuinit early_init_amd(struct cpuinfo_x86 *c)
358#endif 358#endif
359#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_PCI) 359#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_PCI)
360 /* check CPU config space for extended APIC ID */ 360 /* check CPU config space for extended APIC ID */
361 if (c->x86 >= 0xf) { 361 if (cpu_has_apic && c->x86 >= 0xf) {
362 unsigned int val; 362 unsigned int val;
363 val = read_pci_config(0, 24, 0, 0x68); 363 val = read_pci_config(0, 24, 0, 0x68);
364 if ((val & ((1 << 17) | (1 << 18))) == ((1 << 17) | (1 << 18))) 364 if ((val & ((1 << 17) | (1 << 18))) == ((1 << 17) | (1 << 18)))
@@ -402,6 +402,13 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)
402 level = cpuid_eax(1); 402 level = cpuid_eax(1);
403 if ((level >= 0x0f48 && level < 0x0f50) || level >= 0x0f58) 403 if ((level >= 0x0f48 && level < 0x0f50) || level >= 0x0f58)
404 set_cpu_cap(c, X86_FEATURE_REP_GOOD); 404 set_cpu_cap(c, X86_FEATURE_REP_GOOD);
405
406 /*
407 * Some BIOSes incorrectly force this feature, but only K8
408 * revision D (model = 0x14) and later actually support it.
409 */
410 if (c->x86_model < 0x14)
411 clear_cpu_cap(c, X86_FEATURE_LAHF_LM);
405 } 412 }
406 if (c->x86 == 0x10 || c->x86 == 0x11) 413 if (c->x86 == 0x10 || c->x86 == 0x11)
407 set_cpu_cap(c, X86_FEATURE_REP_GOOD); 414 set_cpu_cap(c, X86_FEATURE_REP_GOOD);