From 839bea87f0cef852b6a67a959933ab4fd32a6385 Mon Sep 17 00:00:00 2001 From: Kevin Winchester Date: Mon, 10 Aug 2009 19:56:45 -0300 Subject: [PATCH] --- yaml --- r: 156723 b: refs/heads/master c: fbd8b1819e80ac5a176d085fdddc3a34d1499318 h: refs/heads/master i: 156721: 44770754e2bb2ddcffdf40e8b75cac2852f49a69 156719: 23abbe1cc2582a03dee17d84becd7fc2da6dfcfe v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/cpu/amd.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 20a583ed5a5c..06568ad8deb3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0d01f31439c1e4d602bf9fdc924ab66f407f5e38 +refs/heads/master: fbd8b1819e80ac5a176d085fdddc3a34d1499318 diff --git a/trunk/arch/x86/kernel/cpu/amd.c b/trunk/arch/x86/kernel/cpu/amd.c index e2485b03f1cf..63fddcd082cd 100644 --- a/trunk/arch/x86/kernel/cpu/amd.c +++ b/trunk/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);