lkml.org 
[lkml]   [2007]   [Oct]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/2] x86: mce init optimization and signedness fixup
    Date
    MCG_CAP never reports a negative count of available error-reporting banks.
    Therefore, make nr_mce_banks unsigned.
    Check for MCA/MCE feature bits as early as possible.

    Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    ---
    arch/x86/kernel/cpu/mcheck/mce.c | 12 ++++++++++--
    arch/x86/kernel/cpu/mcheck/mce.h | 2 +-
    2 files changed, 11 insertions(+), 3 deletions(-)

    diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
    index 34c781e..e1ac4f7 100644
    --- a/arch/x86/kernel/cpu/mcheck/mce.c
    +++ b/arch/x86/kernel/cpu/mcheck/mce.c
    @@ -17,7 +17,7 @@
    #include "mce.h"

    int mce_disabled = 0;
    -int nr_mce_banks;
    +unsigned int nr_mce_banks;

    EXPORT_SYMBOL_GPL(nr_mce_banks); /* non-fatal.o */

    @@ -33,8 +33,16 @@ void fastcall (*machine_check_vector)(struct pt_regs *, long error_code) = unexp
    /* This has to be run for each processor */
    void mcheck_init(struct cpuinfo_x86 *c)
    {
    - if (mce_disabled==1)
    + if (mce_disabled == 1) {
    + printk(KERN_INFO "MCE support disabled by bootparam\n");
    return;
    + }
    +
    + if (!cpu_has(c, X86_FEATURE_MCA) || !cpu_has(c, X86_FEATURE_MCE)) {
    + printk(KERN_INFO "CPU%i: No machine check support available\n",
    + smp_processor_id());
    + return;
    + }

    switch (c->x86_vendor) {
    case X86_VENDOR_AMD:
    diff --git a/arch/x86/kernel/cpu/mcheck/mce.h b/arch/x86/kernel/cpu/mcheck/mce.h
    index 81fb6e2..9cbe812 100644
    --- a/arch/x86/kernel/cpu/mcheck/mce.h
    +++ b/arch/x86/kernel/cpu/mcheck/mce.h
    @@ -10,5 +10,5 @@ void winchip_mcheck_init(struct cpuinfo_x86 *c);
    /* Call the installed machine check handler for this CPU setup. */
    extern fastcall void (*machine_check_vector)(struct pt_regs *, long error_code);

    -extern int nr_mce_banks;
    +extern unsigned int nr_mce_banks;

    --
    1.5.2.5


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-10-11 14:21    [W:0.033 / U:0.072 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site