]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
x86, mce: separate correct machine check poller and fatal exception handler
authorAndi Kleen <andi@firstfloor.org>
Thu, 12 Feb 2009 12:43:23 +0000 (13:43 +0100)
committerH. Peter Anvin <hpa@linux.intel.com>
Thu, 19 Feb 2009 22:52:20 +0000 (14:52 -0800)
commitb79109c3bbcf52cac5103979b283b9e5df4e796c
tree528da2232a2c7f013bde63b623bc11a205ce8773
parentb5f2fa4ea00a179ac1c2ff342ceeee261dd75e53
x86, mce: separate correct machine check poller and fatal exception handler

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: Andi Kleen <ak@linux.intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/mce.h
arch/x86/kernel/cpu/mcheck/mce_64.c
arch/x86/kernel/cpu/mcheck/mce_amd_64.c