• Andi Kleen's avatar
    x86, mce: check early in exception handler if panic is needed · bd19a5e6
    Andi Kleen authored
    The exception handler should behave differently if the exception is
    fatal versus one that can be returned from.  In the first case it should
    never clear any registers because these need to be preserved
    for logging after the next boot. Otherwise it should clear them
    on each CPU step by step so that other CPUs sharing the same bank don't
    see duplicate events. Otherwise we risk reporting events multiple
    times on any CPUs which have shared machine check banks, which
    is a common problem on Intel Nehalem which has both SMT (two
    CPU threads sharing banks) and shared machine check banks in the uncore.
    
    Determine early in a special pass if any event requires a panic.
    This uses the mce_severity() function added earlier.
    
    This is needed for the next patch.
    
    Also fixes a problem together with an earlier patch
    that corrected events weren't logged on a fatal MCE.
    
    [ Impact: Feature ]
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    Signed-off-by: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
    Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
    bd19a5e6
mce.c 31.2 KB