Commit 37b7370a8d439f6cab51ccf5d5cb41d0fb544fd1

Authored by Borislav Petkov
1 parent e045c29126

amd64_edac: Do not report error overflow as a separate error

When the Overflow MCi_STATUS bit is set, EDAC reports the lost error
with a "no information available" message which often puzzles users
parsing the dmesg. This doesn't make much sense since this error has
been lost anyway so no need for reporting it separately. Thus, report
the overflow bit setting in the MCE dump instead. While at it, remove
reporting of MiscV and ErrorEnable (en) which are superfluous.

Now it looks like this:

[ 1501.650024] MC4_STATUS: Corrected error, other errors lost: yes, CPU context corrupt: no, CECC Error
[ 1501.666887] Northbridge Error, node 2

Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>

Showing 2 changed files with 2 additions and 13 deletions Side-by-side Diff

drivers/edac/amd64_edac.c
... ... @@ -2071,16 +2071,6 @@
2071 2071 amd64_handle_ce(mci, info);
2072 2072 else if (ecc_type == 1)
2073 2073 amd64_handle_ue(mci, info);
2074   -
2075   - /*
2076   - * If main error is CE then overflow must be CE. If main error is UE
2077   - * then overflow is unknown. We'll call the overflow a CE - if
2078   - * panic_on_ue is set then we're already panic'ed and won't arrive
2079   - * here. Else, then apparently someone doesn't think that UE's are
2080   - * catastrophic.
2081   - */
2082   - if (info->nbsh & K8_NBSH_OVERFLOW)
2083   - edac_mc_handle_ce_no_info(mci, EDAC_MOD_STR " Error Overflow");
2084 2074 }
2085 2075  
2086 2076 void amd64_decode_bus_error(int node_id, struct err_regs *regs)
drivers/edac/edac_mce_amd.c
... ... @@ -365,11 +365,10 @@
365 365  
366 366 pr_emerg("MC%d_STATUS: ", m->bank);
367 367  
368   - pr_cont("%sorrected error, report: %s, MiscV: %svalid, "
  368 + pr_cont("%sorrected error, other errors lost: %s, "
369 369 "CPU context corrupt: %s",
370 370 ((m->status & MCI_STATUS_UC) ? "Unc" : "C"),
371   - ((m->status & MCI_STATUS_EN) ? "yes" : "no"),
372   - ((m->status & MCI_STATUS_MISCV) ? "" : "in"),
  371 + ((m->status & MCI_STATUS_OVER) ? "yes" : "no"),
373 372 ((m->status & MCI_STATUS_PCC) ? "yes" : "no"));
374 373  
375 374 /* do the two bits[14:13] together */