From: tip-bot for Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@redhat.com,
seto.hidetoshi@jp.fujitsu.com, tony.luck@intel.com,
tglx@linutronix.de, borislav.petkov@amd.com
Subject: [tip:ras/core] x86, mce, severity: Cleanup severity table
Date: Thu, 16 Jun 2011 11:16:54 GMT [thread overview]
Message-ID: <tip-a17957cdec69acb9e26319618b95a810a936e637@git.kernel.org> (raw)
In-Reply-To: <4DEED61F.5010502@jp.fujitsu.com>
Commit-ID: a17957cdec69acb9e26319618b95a810a936e637
Gitweb: http://git.kernel.org/tip/a17957cdec69acb9e26319618b95a810a936e637
Author: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
AuthorDate: Wed, 8 Jun 2011 10:53:35 +0900
Committer: Borislav Petkov <borislav.petkov@amd.com>
CommitDate: Thu, 16 Jun 2011 12:09:42 +0200
x86, mce, severity: Cleanup severity table
The current format of an item in this table is:
condition(param, ..., level, message [, condition2 ...])
So we have to check both an item's head and tail to find the conditions
which match the item.
Format them in a more straight forward manner:
item(level, message, condition [, condition2 ...])
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Acked-by: Tony Luck <tony.luck@intel.com>
Link: http://lkml.kernel.org/r/4DEED61F.5010502@jp.fujitsu.com
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
---
arch/x86/kernel/cpu/mcheck/mce-severity.c | 127 +++++++++++++----------------
1 files changed, 58 insertions(+), 69 deletions(-)
diff --git a/arch/x86/kernel/cpu/mcheck/mce-severity.c b/arch/x86/kernel/cpu/mcheck/mce-severity.c
index eaf5a43..27e778e 100644
--- a/arch/x86/kernel/cpu/mcheck/mce-severity.c
+++ b/arch/x86/kernel/cpu/mcheck/mce-severity.c
@@ -43,116 +43,105 @@ static struct severity {
unsigned char covered;
char *msg;
} severities[] = {
-#define KERNEL .context = IN_KERNEL
-#define USER .context = IN_USER
-#define SER .ser = SER_REQUIRED
-#define NOSER .ser = NO_SER
-#define SEV(s) .sev = MCE_ ## s ## _SEVERITY
-#define BITCLR(x, s, m, r...) { .mask = x, .result = 0, SEV(s), .msg = m, ## r }
-#define BITSET(x, s, m, r...) { .mask = x, .result = x, SEV(s), .msg = m, ## r }
-#define MCGMASK(x, res, s, m, r...) \
- { .mcgmask = x, .mcgres = res, SEV(s), .msg = m, ## r }
-#define MASK(x, y, s, m, r...) \
- { .mask = x, .result = y, SEV(s), .msg = m, ## r }
+#define MCESEV(s, m, c...) { .sev = MCE_ ## s ## _SEVERITY, .msg = m, ## c }
+#define KERNEL .context = IN_KERNEL
+#define USER .context = IN_USER
+#define SER .ser = SER_REQUIRED
+#define NOSER .ser = NO_SER
+#define BITCLR(x) .mask = x, .result = 0
+#define BITSET(x) .mask = x, .result = x
+#define MCGMASK(x, y) .mcgmask = x, .mcgres = y
+#define MASK(x, y) .mask = x, .result = y
#define MCI_UC_S (MCI_STATUS_UC|MCI_STATUS_S)
#define MCI_UC_SAR (MCI_STATUS_UC|MCI_STATUS_S|MCI_STATUS_AR)
#define MCACOD 0xffff
- BITCLR(
- MCI_STATUS_VAL,
- NO, "Invalid"
+ MCESEV(
+ NO, "Invalid",
+ BITCLR(MCI_STATUS_VAL)
),
- BITCLR(
- MCI_STATUS_EN,
- NO, "Not enabled"
+ MCESEV(
+ NO, "Not enabled",
+ BITCLR(MCI_STATUS_EN)
),
- BITSET(
- MCI_STATUS_PCC,
- PANIC, "Processor context corrupt"
+ MCESEV(
+ PANIC, "Processor context corrupt",
+ BITSET(MCI_STATUS_PCC)
),
/* When MCIP is not set something is very confused */
- MCGMASK(
- MCG_STATUS_MCIP, 0,
- PANIC, "MCIP not set in MCA handler"
+ MCESEV(
+ PANIC, "MCIP not set in MCA handler",
+ MCGMASK(MCG_STATUS_MCIP, 0)
),
/* Neither return not error IP -- no chance to recover -> PANIC */
- MCGMASK(
- MCG_STATUS_RIPV|MCG_STATUS_EIPV, 0,
- PANIC, "Neither restart nor error IP"
+ MCESEV(
+ PANIC, "Neither restart nor error IP",
+ MCGMASK(MCG_STATUS_RIPV|MCG_STATUS_EIPV, 0)
),
- MCGMASK(
- MCG_STATUS_RIPV, 0,
+ MCESEV(
PANIC, "In kernel and no restart IP",
- KERNEL
+ KERNEL, MCGMASK(MCG_STATUS_RIPV, 0)
),
- BITCLR(
- MCI_STATUS_UC,
+ MCESEV(
KEEP, "Corrected error",
- NOSER
+ NOSER, BITCLR(MCI_STATUS_UC)
),
/* ignore OVER for UCNA */
- MASK(
- MCI_UC_SAR, MCI_STATUS_UC,
+ MCESEV(
KEEP, "Uncorrected no action required",
- SER
+ SER, MASK(MCI_UC_SAR, MCI_STATUS_UC)
),
- MASK(
- MCI_STATUS_OVER|MCI_UC_SAR, MCI_STATUS_UC|MCI_STATUS_AR,
+ MCESEV(
PANIC, "Illegal combination (UCNA with AR=1)",
- SER
+ SER,
+ MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_STATUS_UC|MCI_STATUS_AR)
),
- MASK(
- MCI_STATUS_S, 0,
+ MCESEV(
KEEP, "Non signalled machine check",
- SER
+ SER, MASK(MCI_STATUS_S, 0)
),
/* AR add known MCACODs here */
- MASK(
- MCI_STATUS_OVER|MCI_UC_SAR, MCI_STATUS_OVER|MCI_UC_SAR,
+ MCESEV(
PANIC, "Action required with lost events",
- SER
+ SER,
+ MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_STATUS_OVER|MCI_UC_SAR)
),
- MASK(
- MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_SAR,
+ MCESEV(
PANIC, "Action required; unknown MCACOD",
- SER
+ SER, MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_SAR)
),
/* known AO MCACODs: */
- MASK(
- MCI_UC_SAR|MCI_STATUS_OVER|0xfff0, MCI_UC_S|0xc0,
+ MCESEV(
AO, "Action optional: memory scrubbing error",
- SER
+ SER, MASK(MCI_UC_SAR|MCI_STATUS_OVER|0xfff0, MCI_UC_S|0xc0)
),
- MASK(
- MCI_UC_SAR|MCI_STATUS_OVER|MCACOD, MCI_UC_S|0x17a,
+ MCESEV(
AO, "Action optional: last level cache writeback error",
- SER
+ SER, MASK(MCI_UC_SAR|MCI_STATUS_OVER|MCACOD, MCI_UC_S|0x17a)
),
-
- MASK(
- MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_S,
+ MCESEV(
SOME, "Action optional unknown MCACOD",
- SER
+ SER, MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_S)
),
- MASK(
- MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_S|MCI_STATUS_OVER,
+ MCESEV(
SOME, "Action optional with lost events",
- SER
+ SER, MASK(MCI_STATUS_OVER|MCI_UC_SAR, MCI_UC_S|MCI_STATUS_OVER)
),
- BITSET(
- MCI_STATUS_UC|MCI_STATUS_OVER,
- PANIC, "Overflowed uncorrected"
+
+ MCESEV(
+ PANIC, "Overflowed uncorrected",
+ BITSET(MCI_STATUS_UC|MCI_STATUS_OVER)
),
- BITSET(
- MCI_STATUS_UC,
- UC, "Uncorrected"
+ MCESEV(
+ UC, "Uncorrected",
+ BITSET(MCI_STATUS_UC)
),
- BITSET(
- 0,
- SOME, "No match"
+ MCESEV(
+ SOME, "No match",
+ BITSET(0)
) /* always matches. keep at end */
};
next prev parent reply other threads:[~2011-06-16 11:17 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-08 1:48 [PATCH 00/12] x86: minor cleanups/fixes for MCE codes (v2) Hidetoshi Seto
2011-06-08 1:51 ` [PATCH 01/12] mce-severity: fixes for mce severity table Hidetoshi Seto
2011-06-16 11:16 ` [tip:ras/core] x86, mce, severity: Fix two severities table signatures tip-bot for Tony Luck
2011-06-08 1:52 ` [PATCH 02/12] mce-severity: cleanup severity table, prep Hidetoshi Seto
2011-06-16 11:16 ` [tip:ras/core] x86, mce, severity: Make formatting a bit more readable tip-bot for Hidetoshi Seto
2011-06-08 1:53 ` [PATCH 03/12] mce-severity: cleanup severity table Hidetoshi Seto
2011-06-16 11:16 ` tip-bot for Hidetoshi Seto [this message]
2011-06-08 1:55 ` [PATCH 04/12] mce-severity: trivial cleanups Hidetoshi Seto
2011-06-16 11:17 ` [tip:ras/core] x86, mce, severity: Clean up trivial coding style problems tip-bot for Hidetoshi Seto
2011-06-08 1:56 ` [PATCH 05/12] x86, mce: replace MCE_SELF_VECTOR by irq_work Hidetoshi Seto
2011-06-16 11:17 ` [tip:ras/core] x86, mce: Replace " tip-bot for Hidetoshi Seto
2011-06-08 1:56 ` [PATCH 06/12] x86, mce: replace MCM_ to MCI_MISC_ Hidetoshi Seto
2011-06-16 11:18 ` [tip:ras/core] x86, mce: Replace MCM_ with MCI_MISC_ tip-bot for Hidetoshi Seto
2011-06-08 1:57 ` [PATCH 07/12] x86, mce: introduce mce_gather_info() Hidetoshi Seto
2011-06-16 11:18 ` [tip:ras/core] x86, mce: Introduce mce_gather_info() tip-bot for Hidetoshi Seto
2011-06-08 1:58 ` [PATCH 08/12] x86, mce: check the result of ancient_init() Hidetoshi Seto
2011-06-16 11:19 ` [tip:ras/core] x86, mce: Check " tip-bot for Hidetoshi Seto
2011-06-08 1:59 ` [PATCH 09/12] x86, mce: cleanup mce_create/remove_device Hidetoshi Seto
2011-06-16 11:19 ` [tip:ras/core] x86, mce: Cleanup mce_create()/remove_device() tip-bot for Hidetoshi Seto
2011-06-08 2:00 ` [PATCH 10/12] x86, mce: cleanup mce_read Hidetoshi Seto
2011-06-16 11:19 ` [tip:ras/core] x86, mce: Cleanup mce_read() tip-bot for Hidetoshi Seto
2011-06-08 2:00 ` [PATCH 11/12] x86, mce: use prefix mce_chrdev_ to group functions Hidetoshi Seto
2011-06-16 11:20 ` [tip:ras/core] x86, mce: Use mce_chrdev_ prefix " tip-bot for Hidetoshi Seto
2011-06-08 2:02 ` [PATCH 12/12] x86, mce: use prefix mce_sysdev_ " Hidetoshi Seto
2011-06-16 11:20 ` [tip:ras/core] x86, mce: Use mce_sysdev_ prefix " tip-bot for Hidetoshi Seto
2011-06-08 10:19 ` [PATCH 00/12] x86: minor cleanups/fixes for MCE codes (v2) Borislav Petkov
2011-06-10 8:24 ` Hidetoshi Seto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-a17957cdec69acb9e26319618b95a810a936e637@git.kernel.org \
--to=seto.hidetoshi@jp.fujitsu.com \
--cc=borislav.petkov@amd.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.