From: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Tony Luck <tony.luck@intel.com>
Subject: [PATCH 03/12] mce-severity: cleanup severity table
Date: Fri, 27 May 2011 13:05:14 +0900 [thread overview]
Message-ID: <4DDF22FA.4020406@jp.fujitsu.com> (raw)
In-Reply-To: <4DDF21DE.9040705@jp.fujitsu.com>
Current format of item in this table is:
condition(param, ..., level, message [, condition2 ...])
So we have to check both of head and tail of the item to know
conditions to match the item.
Make them in straight forward form:
item(level, message, condition [, condition2 ...])
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.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..b797913 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_STATUS_OVER|MCI_UC_SAR|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_STATUS_OVER|MCI_UC_SAR|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_OVER|MCI_STATUS_UC)
),
- 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 */
};
--
1.7.1
next prev parent reply other threads:[~2011-05-27 4:05 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-27 4:00 [PATCH 00/12] minor cleanups/fixes for MCE codes Hidetoshi Seto
2011-05-27 4:03 ` [PATCH 01/12] mce-severity: fixes for mce severity table Hidetoshi Seto
2011-05-27 4:04 ` [PATCH 02/12] mce-severity: cleanup severity table, prep Hidetoshi Seto
2011-05-27 4:05 ` Hidetoshi Seto [this message]
2011-05-27 6:46 ` [PATCH 03/12] mce-severity: cleanup severity table Borislav Petkov
2011-05-27 7:54 ` Ingo Molnar
2011-05-30 5:42 ` Hidetoshi Seto
2011-05-27 4:06 ` [PATCH 04/12] mce-severity: trivial cleanups Hidetoshi Seto
2011-05-27 4:07 ` [PATCH 05/12] x86, mce: replace MCE_SELF_VECTOR by irq_work Hidetoshi Seto
2011-05-27 4:08 ` [PATCH 06/12] x86, mce: replace MCM_ to MCI_MISC_ Hidetoshi Seto
2011-05-27 4:09 ` [PATCH 07/12] x86, mce: introduce mce_gather_info() Hidetoshi Seto
2011-05-27 6:27 ` Tony Luck
2011-05-27 8:00 ` Ingo Molnar
2011-05-27 16:29 ` Tony Luck
2011-05-30 5:42 ` Hidetoshi Seto
2011-05-27 4:10 ` [PATCH 08/12] x86, mce: check the result of ancient_init() Hidetoshi Seto
2011-05-27 4:10 ` [PATCH 09/12] x86, mce: cleanup mce_create/remove_device Hidetoshi Seto
2011-05-27 4:11 ` [PATCH 10/12] x86, mce: cleanup mce_read Hidetoshi Seto
2011-05-27 6:38 ` Borislav Petkov
2011-05-30 5:43 ` Hidetoshi Seto
2011-05-27 4:12 ` [PATCH 11/12] x86, mce: use prefix mce_chrdev_ to group functions Hidetoshi Seto
2011-05-27 4:13 ` [PATCH 12/12] x86, mce: use prefix mce_sysdev_ " Hidetoshi Seto
-- strict thread matches above, loose matches on Subject: below --
2011-06-08 1:48 [PATCH 00/12] x86: minor cleanups/fixes for MCE codes (v2) Hidetoshi Seto
2011-06-08 1:53 ` [PATCH 03/12] mce-severity: cleanup severity table 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=4DDF22FA.4020406@jp.fujitsu.com \
--to=seto.hidetoshi@jp.fujitsu.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@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.