Skip to content

Commit

Permalink
x86, mce, severity: Make formatting a bit more readable
Browse files Browse the repository at this point in the history
The table looks very complicated and hard to read for people other than
skilled developers. So let's clean it up a bit. At first, change format
to ease reading elements in the table.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Acked-by: Tony Luck <tony.luck@intel.com>
Link: http://lkml.kernel.org/r/4DEED5EB.6050400@jp.fujitsu.com
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
  • Loading branch information
Hidetoshi Seto authored and Borislav Petkov committed Jun 16, 2011
1 parent 880a317 commit 901d769
Showing 1 changed file with 88 additions and 30 deletions.
118 changes: 88 additions & 30 deletions arch/x86/kernel/cpu/mcheck/mce-severity.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,44 +58,102 @@ static struct severity {
#define MCI_UC_SAR (MCI_STATUS_UC|MCI_STATUS_S|MCI_STATUS_AR)
#define MCACOD 0xffff

BITCLR(MCI_STATUS_VAL, NO, "Invalid"),
BITCLR(MCI_STATUS_EN, NO, "Not enabled"),
BITSET(MCI_STATUS_PCC, PANIC, "Processor context corrupt"),
BITCLR(
MCI_STATUS_VAL,
NO, "Invalid"
),
BITCLR(
MCI_STATUS_EN,
NO, "Not enabled"
),
BITSET(
MCI_STATUS_PCC,
PANIC, "Processor context corrupt"
),
/* When MCIP is not set something is very confused */
MCGMASK(MCG_STATUS_MCIP, 0, PANIC, "MCIP not set in MCA handler"),
MCGMASK(
MCG_STATUS_MCIP, 0,
PANIC, "MCIP not set in MCA handler"
),
/* Neither return not error IP -- no chance to recover -> PANIC */
MCGMASK(MCG_STATUS_RIPV|MCG_STATUS_EIPV, 0, PANIC,
"Neither restart nor error IP"),
MCGMASK(MCG_STATUS_RIPV, 0, PANIC, "In kernel and no restart IP",
KERNEL),
BITCLR(MCI_STATUS_UC, KEEP, "Corrected error", NOSER),
MCGMASK(
MCG_STATUS_RIPV|MCG_STATUS_EIPV, 0,
PANIC, "Neither restart nor error IP"
),
MCGMASK(
MCG_STATUS_RIPV, 0,
PANIC, "In kernel and no restart IP",
KERNEL
),
BITCLR(
MCI_STATUS_UC,
KEEP, "Corrected error",
NOSER
),

/* ignore OVER for UCNA */
MASK(MCI_UC_SAR, MCI_STATUS_UC, KEEP,
"Uncorrected no action required", SER),
MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_STATUS_UC|MCI_STATUS_AR, PANIC,
"Illegal combination (UCNA with AR=1)", SER),
MASK(MCI_STATUS_S, 0, KEEP, "Non signalled machine check", SER),
MASK(
MCI_UC_SAR, MCI_STATUS_UC,
KEEP, "Uncorrected no action required",
SER
),
MASK(
MCI_STATUS_OVER|MCI_UC_SAR, MCI_STATUS_UC|MCI_STATUS_AR,
PANIC, "Illegal combination (UCNA with AR=1)",
SER
),
MASK(
MCI_STATUS_S, 0,
KEEP, "Non signalled machine check",
SER
),

/* AR add known MCACODs here */
MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_STATUS_OVER|MCI_UC_SAR, PANIC,
"Action required with lost events", SER),
MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_SAR, PANIC,
"Action required; unknown MCACOD", SER),
MASK(
MCI_STATUS_OVER|MCI_UC_SAR, MCI_STATUS_OVER|MCI_UC_SAR,
PANIC, "Action required with lost events",
SER
),
MASK(
MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_SAR,
PANIC, "Action required; unknown MCACOD",
SER
),

/* known AO MCACODs: */
MASK(MCI_UC_SAR|MCI_STATUS_OVER|0xfff0, MCI_UC_S|0xc0, AO,
"Action optional: memory scrubbing error", SER),
MASK(MCI_UC_SAR|MCI_STATUS_OVER|MCACOD, MCI_UC_S|0x17a, AO,
"Action optional: last level cache writeback error", SER),

MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_S, SOME,
"Action optional unknown MCACOD", SER),
MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_S|MCI_STATUS_OVER, SOME,
"Action optional with lost events", SER),
BITSET(MCI_STATUS_UC|MCI_STATUS_OVER, PANIC, "Overflowed uncorrected"),
BITSET(MCI_STATUS_UC, UC, "Uncorrected"),
BITSET(0, SOME, "No match") /* always matches. keep at end */
MASK(
MCI_UC_SAR|MCI_STATUS_OVER|0xfff0, MCI_UC_S|0xc0,
AO, "Action optional: memory scrubbing error",
SER
),
MASK(
MCI_UC_SAR|MCI_STATUS_OVER|MCACOD, MCI_UC_S|0x17a,
AO, "Action optional: last level cache writeback error",
SER
),

MASK(
MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_S,
SOME, "Action optional unknown MCACOD",
SER
),
MASK(
MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_S|MCI_STATUS_OVER,
SOME, "Action optional with lost events",
SER
),
BITSET(
MCI_STATUS_UC|MCI_STATUS_OVER,
PANIC, "Overflowed uncorrected"
),
BITSET(
MCI_STATUS_UC,
UC, "Uncorrected"
),
BITSET(
0,
SOME, "No match"
) /* always matches. keep at end */
};

/*
Expand Down

0 comments on commit 901d769

Please sign in to comment.