lkml.org 
[lkml]   [2009]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3] x86: clear incorrectly forced X86_FEATURE_LAHF_LM flag
    Kevin Winchester writes:
    > 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>
    > ---
    > arch/x86/kernel/cpu/amd.c | 7 +++++++
    > 1 files changed, 7 insertions(+), 0 deletions(-)
    >
    > diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
    > index e2485b0..63fddcd 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);

    But this only fixes /proc/cpuinfo, right?

    Since the BIOS apparently wrote some MSR to get LAHF_LM incorrectly
    reported by CPUID, would it be possible to also correct that MSR so
    that applications that execute CPUID get the correct feature flags?

    /Mikael


    \
     
     \ /
      Last update: 2009-08-11 16:41    [W:0.031 / U:32.980 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site