• Andi Kleen's avatar
    x86, mce: separate correct machine check poller and fatal exception handler · b79109c3
    Andi Kleen authored
    Impact: cleanup, performance enhancement
    
    The machine check poller is diverging more and more from the fatal
    exception handler. Instead of adding more special cases separate the code
    paths completely. The corrected poll path is actually quite simple,
    and this doesn't result in much code duplication.
    
    This makes both handlers much easier to read and results in
    cleaner code flow.  The exception handler now only needs to care
    about uncorrected errors, which also simplifies the handling of multiple
    errors. The corrected poller also now always runs in standard interrupt
    context and does not need to do anything special to handle NMI context.
    
    Minor behaviour changes:
    - MCG status is now not cleared on polling.
    - Only the banks which had corrected errors get cleared on polling
    - The exception handler only clears banks with errors now
    
    v2: Forward port to new patch order. Add "uc" argument.
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    b79109c3
mce_64.c 26.7 KB