Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 901d7691 authored by Hidetoshi Seto's avatar Hidetoshi Seto Committed by Borislav Petkov
Browse files

x86, mce, severity: Make formatting a bit more readable



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: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Acked-by: default avatarTony Luck <tony.luck@intel.com>
Link: http://lkml.kernel.org/r/4DEED5EB.6050400@jp.fujitsu.com


Signed-off-by: default avatarBorislav Petkov <borislav.petkov@amd.com>
parent 880a317a
Loading
Loading
Loading
Loading
+88 −30
Original line number Diff line number Diff line
@@ -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 */
};

/*