From: Kevin Winchester <kjwinchester@gmail.com>
To: Borislav Petkov <petkovbb@googlemail.com>,
Kevin Winchester <kjwinchester@gmail.com>,
Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Yinghai Lu <yinghai@kernel.org>,
Andreas Herrmann <andreas.herrmann3@amd.com>,
LKML <linux-kernel@vger.kernel.org>,
borislav.petkov@amd.com
Subject: Re: [PATCH] x86: clear incorrectly forced X86_FEATURE_LAHF_LM flag
Date: Sat, 08 Aug 2009 19:06:30 -0300 [thread overview]
Message-ID: <4A7DF6E6.2030509@gmail.com> (raw)
In-Reply-To: <20090808152016.GB25374@liondog.tnic>
Borislav Petkov wrote:
> Hi,
>
> On Sat, Aug 08, 2009 at 08:53:30AM -0300, Kevin Winchester wrote:
>> Due to an erratum with certain AMD Athlon 64 processors, the BIOS may
>> need to force enable the LAHF_LM capability. Unfortunately, in at
>> least one case, the BIOS does this even for processors that do not
>> support the functionality.
>>
>> Add a specific check that will clear the feature bit for processors
>> known not to support the LAHF/SAHF instructions.
>>
>> Signed-off-by: Kevin Winchester <kjwinchester@gmail.com>
>> ---
>>
>> While making this change, I noticed the clause above my code:
>>
>> if((level >= 0x0f48 && level < 0x0f50) || level >= 0x0f58)
>>
>> It does not seem concerned with the possibility that some of the
>> upper 16 bits of level will be non-zero. Is this intentional, or
>> should the upper 16 bits be masked off before the comparisons?
>
> This should be ok because the upper 16 bits are 0x0000 for those
> revisions and therefore the whole u32 matches. Later revisions have the
> extended model bumped and they also match.
>
>> arch/x86/kernel/cpu/amd.c | 8 ++++++++
>> 1 files changed, 8 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
>> index e2485b0..a2f0fe4 100644
>> --- a/arch/x86/kernel/cpu/amd.c
>> +++ b/arch/x86/kernel/cpu/amd.c
>> @@ -400,6 +400,14 @@ 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 set this feature, but only
>> + * Revision E (with Extended Model = 2) actually supports
>> + * it.
>> + */
>> + if (!(level & 0x00020000))
>> + clear_cpu_cap(c, X86_FEATURE_LAHF_LM);
>
> let me check this internally next week because
> it seems that according to the Fam 0xf RevGuide
> (http://support.amd.com/us/Processor_TechDocs/25759.pdf) erratum 110
> applies to atleast 3 CPU revisions with extended model 0x1 too.
You are quite right, I will redo the patch.
>
> By the way, what does /proc/cpuinfo say on your machine?
>
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 4
model name : AMD Athlon(tm) 64 Processor 2800+
stepping : 10
cpu MHz : 1800.000
cache size : 512 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow rep_good
bogomips : 3599.75
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp
--
Kevin Winchester
next prev parent reply other threads:[~2009-08-08 22:06 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-08 11:53 Kevin Winchester
2009-08-08 15:20 ` Borislav Petkov
2009-08-08 15:42 ` Ingo Molnar
2009-08-08 16:15 ` Ingo Molnar
2009-08-08 22:06 ` Kevin Winchester [this message]
2009-08-08 23:17 ` [PATCH v2] " Kevin Winchester
2009-08-10 13:12 ` Borislav Petkov
2009-08-10 22:56 ` [PATCH v3] " Kevin Winchester
2009-08-11 9:44 ` Borislav Petkov
2009-08-11 11:36 ` [tip:x86/urgent] x86: Clear " tip-bot for Kevin Winchester
2009-08-11 14:37 ` [PATCH v3] x86: clear " Mikael Pettersson
2009-08-11 14:56 ` Kevin Winchester
2009-08-11 15:51 ` Borislav Petkov
2009-08-11 15:55 ` Kevin Winchester
2009-08-11 16:01 ` Borislav Petkov
2009-08-12 0:15 ` Kevin Winchester
2009-08-12 11:40 ` Borislav Petkov
2009-08-12 23:02 ` Kevin Winchester
2009-08-13 12:23 ` Borislav Petkov
2009-08-13 12:31 ` [PATCH 1/2] x86, msr: Add an AMD wrmsr with exception handling Borislav Petkov
2009-08-13 12:31 ` [PATCH 2/2] x86: Clear incorrectly forced X86_FEATURE_LAHF_LM flag Borislav Petkov
2009-08-13 14:21 ` Brian Gerst
2009-08-13 14:54 ` Kevin Winchester
2009-08-13 15:55 ` Brian Gerst
2009-08-13 16:18 ` Borislav Petkov
2009-08-13 22:45 ` Kevin Winchester
2009-08-13 15:54 ` Borislav Petkov
2009-08-13 14:57 ` [PATCH v3] x86: clear " Kevin Winchester
2009-08-13 23:24 ` Kevin Winchester
2009-08-14 12:00 ` Borislav Petkov
2009-08-14 12:06 ` [PATCH 1/2] x86, msr: Add a AMD wrmsr with exception handling Borislav Petkov
2009-08-15 17:06 ` [tip:x86/urgent] " tip-bot for Borislav Petkov
2009-08-14 12:06 ` [PATCH 2/2] x86, AMD: Disable wrongly set X86_FEATURE_LAHF_LM CPUID bit Borislav Petkov
2009-08-15 17:06 ` [tip:x86/urgent] " tip-bot for Borislav Petkov
2009-08-16 6:41 ` Ingo Molnar
2009-08-16 20:10 ` Kevin Winchester
2009-08-16 20:51 ` Ingo Molnar
2009-08-16 21:49 ` Borislav Petkov
2009-08-21 17:40 ` H. Peter Anvin
2009-08-22 16:37 ` Borislav Petkov
2009-08-24 20:34 ` H. Peter Anvin
2009-08-25 5:52 ` Borislav Petkov
2009-08-25 6:44 ` H. Peter Anvin
2009-08-30 11:43 ` Borislav Petkov
2009-08-30 11:50 ` [PATCH 1/3] x86, msr: add rd/wrmsr interfaces with preset registers Borislav Petkov
2009-08-30 11:50 ` [PATCH 2/3] x86, msr: rewrite AMD rd/wrmsr variants Borislav Petkov
2009-08-30 20:03 ` H. Peter Anvin
2009-08-30 20:46 ` Borislav Petkov
2009-08-30 20:04 ` H. Peter Anvin
2009-08-30 11:50 ` [PATCH 3/3] x86, AMD: Disable wrongly set X86_FEATURE_LAHF_LM CPUID bit Borislav Petkov
2009-08-30 19:22 ` H. Peter Anvin
2009-08-30 19:30 ` Borislav Petkov
2009-08-30 20:02 ` H. Peter Anvin
2009-08-30 20:29 ` Borislav Petkov
2009-08-30 20:48 ` H. Peter Anvin
2009-08-31 7:34 ` Borislav Petkov
2009-08-31 7:50 ` [PATCH 1/3] x86, msr: add rd/wrmsr interfaces with preset registers Borislav Petkov
2009-08-31 23:37 ` [tip:x86/cpu] x86, msr: Add " tip-bot for Borislav Petkov
2009-09-01 11:05 ` Ingo Molnar
2009-09-01 13:06 ` Borislav Petkov
2009-09-04 14:08 ` Ingo Molnar
2009-09-04 16:26 ` H. Peter Anvin
2009-09-04 17:06 ` [tip:x86/cpu] x86, msr: change msr-reg.o to obj-y, and export its symbols tip-bot for H. Peter Anvin
2009-09-05 9:57 ` Borislav Petkov
2009-09-06 4:41 ` H. Peter Anvin
2009-08-31 23:38 ` [tip:x86/cpu] x86, msr: CFI annotations, cleanups for msr-reg.S tip-bot for H. Peter Anvin
2009-09-03 22:55 ` [PATCH 1/3] x86, msr: add rd/wrmsr interfaces with preset registers Andrew Morton
2009-09-03 22:57 ` H. Peter Anvin
2009-09-03 23:14 ` Andrew Morton
2009-09-03 23:22 ` H. Peter Anvin
2009-09-04 6:39 ` Ingo Molnar
2009-09-04 8:27 ` Borislav Petkov
2009-08-31 7:50 ` [PATCH 2/3] x86, msr: rewrite AMD rd/wrmsr variants Borislav Petkov
2009-08-31 23:37 ` [tip:x86/cpu] x86, msr: Rewrite " tip-bot for Borislav Petkov
2009-08-31 7:50 ` [PATCH 3/3] x86, AMD: Disable wrongly set X86_FEATURE_LAHF_LM CPUID bit Borislav Petkov
2009-08-31 23:37 ` [tip:x86/cpu] " tip-bot for Borislav Petkov
2009-08-31 8:14 ` [PATCH 3/3] " Borislav Petkov
2009-08-31 18:03 ` H. Peter Anvin
2009-08-30 17:07 ` [tip:x86/urgent] " H. Peter Anvin
2009-08-30 19:17 ` Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A7DF6E6.2030509@gmail.com \
--to=kjwinchester@gmail.com \
--cc=andreas.herrmann3@amd.com \
--cc=borislav.petkov@amd.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=petkovbb@googlemail.com \
--cc=tglx@linutronix.de \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome