summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/amd.c
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2009-09-11 01:09:23 +0200
committerFrederic Weisbecker <fweisbec@gmail.com>2009-09-11 01:09:23 +0200
commit8f8ffe2485bcaa890800681451d380779cea06af (patch)
tree1d2ef3a27f1cab9a2b9014f4b75886a96a1ae8db /arch/x86/kernel/cpu/amd.c
parent70069577323e6f72b845166724f34b9858134437 (diff)
parentd28daf923ac5e4a0d7cecebae56f3e339189366b (diff)
downloadkernel-crypto-8f8ffe2485bcaa890800681451d380779cea06af.tar.gz
kernel-crypto-8f8ffe2485bcaa890800681451d380779cea06af.tar.xz
kernel-crypto-8f8ffe2485bcaa890800681451d380779cea06af.zip
Merge commit 'tracing/core' into tracing/kprobes
Conflicts: kernel/trace/trace_export.c kernel/trace/trace_kprobe.c Merge reason: This topic branch lacks an important build fix in tracing/core: 0dd7b74787eaf7858c6c573353a83c3e2766e674: tracing: Fix double CPP substitution in TRACE_EVENT_FN that prevents from multiple tracepoint headers inclusion crashes. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Diffstat (limited to 'arch/x86/kernel/cpu/amd.c')
-rw-r--r--arch/x86/kernel/cpu/amd.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index e2485b03f1c..63fddcd082c 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -400,6 +400,13 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)
level = cpuid_eax(1);
if((level >= 0x0f48 && level < 0x0f50) || level >= 0x0f58)
set_cpu_cap(c, X86_FEATURE_REP_GOOD);
+
+ /*
+ * Some BIOSes incorrectly force this feature, but only K8
+ * revision D (model = 0x14) and later actually support it.
+ */
+ if (c->x86_model < 0x14)
+ clear_cpu_cap(c, X86_FEATURE_LAHF_LM);
}
if (c->x86 == 0x10 || c->x86 == 0x11)
set_cpu_cap(c, X86_FEATURE_REP_GOOD);