diff options
author | Aristeu Rozanski <arozansk@redhat.com> | 2014-03-11 23:45:41 +0400 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-03-13 16:52:01 +0400 |
commit | cf40f80cbe374e98283b9865c1295fc74a68fa29 (patch) | |
tree | dd10edb9d8afe4f54bede8c1c854228d7b4b5437 /drivers/edac/sb_edac.c | |
parent | fa389e220254c69ffae0d403eac4146171062d08 (diff) | |
download | linux-cf40f80cbe374e98283b9865c1295fc74a68fa29.tar.xz |
sb_edac: use "event" instead of "exception" when MC wasnt signaled
Corrected Errors are MC events, not exceptions and reporting as the
later might confuse users.
Signed-off-by: Aristeu Rozanski <arozansk@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/edac/sb_edac.c')
-rw-r--r-- | drivers/edac/sb_edac.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c index 54e2abe671f7..5b174c9dbea4 100644 --- a/drivers/edac/sb_edac.c +++ b/drivers/edac/sb_edac.c @@ -1828,6 +1828,7 @@ static int sbridge_mce_check_error(struct notifier_block *nb, unsigned long val, struct mce *mce = (struct mce *)data; struct mem_ctl_info *mci; struct sbridge_pvt *pvt; + char *type; if (get_edac_report_status() == EDAC_REPORTING_DISABLED) return NOTIFY_DONE; @@ -1846,10 +1847,15 @@ static int sbridge_mce_check_error(struct notifier_block *nb, unsigned long val, if ((mce->status & 0xefff) >> 7 != 1) return NOTIFY_DONE; + if (mce->mcgstatus & MCG_STATUS_MCIP) + type = "Exception"; + else + type = "Event"; + printk("sbridge: HANDLING MCE MEMORY ERROR\n"); - printk("CPU %d: Machine Check Exception: %Lx Bank %d: %016Lx\n", - mce->extcpu, mce->mcgstatus, mce->bank, mce->status); + printk("CPU %d: Machine Check %s: %Lx Bank %d: %016Lx\n", + mce->extcpu, type, mce->mcgstatus, mce->bank, mce->status); printk("TSC %llx ", mce->tsc); printk("ADDR %llx ", mce->addr); printk("MISC %llx ", mce->misc); |