diff options
author | Borislav Petkov <borislav.petkov@amd.com> | 2012-09-13 09:14:22 -0400 |
---|---|---|
committer | Borislav Petkov <bp@alien8.de> | 2012-11-28 05:55:57 -0500 |
commit | f89f8388cd11faa8e77992cb11ab44ac9a6abf4f (patch) | |
tree | dabb17dce73cbcfedd36ed5deb2c2746668f119a | |
parent | f05c41a9c6057a0d5851ebc9589e3834fde1a4b6 (diff) |
MCE, AMD: Dump CPU f/m/s triple with the error
It is very useful to have the family/model/stepping with the reported
error so dump it. This saves us asking the bug reporter about it.
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
-rw-r--r-- | drivers/edac/mce_amd.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c index 6b38c1186922..e871a2abc802 100644 --- a/drivers/edac/mce_amd.c +++ b/drivers/edac/mce_amd.c | |||
@@ -670,14 +670,16 @@ static bool amd_filter_mce(struct mce *m) | |||
670 | int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data) | 670 | int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data) |
671 | { | 671 | { |
672 | struct mce *m = (struct mce *)data; | 672 | struct mce *m = (struct mce *)data; |
673 | struct cpuinfo_x86 *c = &boot_cpu_data; | 673 | struct cpuinfo_x86 *c = &cpu_data(m->extcpu); |
674 | int ecc; | 674 | int ecc; |
675 | 675 | ||
676 | if (amd_filter_mce(m)) | 676 | if (amd_filter_mce(m)) |
677 | return NOTIFY_STOP; | 677 | return NOTIFY_STOP; |
678 | 678 | ||
679 | pr_emerg(HW_ERR "CPU:%d\tMC%d_STATUS[%s|%s|%s|%s|%s", | 679 | pr_emerg(HW_ERR "CPU:%d (%x:%x:%x) MC%d_STATUS[%s|%s|%s|%s|%s", |
680 | m->extcpu, m->bank, | 680 | m->extcpu, |
681 | c->x86, c->x86_model, c->x86_mask, | ||
682 | m->bank, | ||
681 | ((m->status & MCI_STATUS_OVER) ? "Over" : "-"), | 683 | ((m->status & MCI_STATUS_OVER) ? "Over" : "-"), |
682 | ((m->status & MCI_STATUS_UC) ? "UE" : "CE"), | 684 | ((m->status & MCI_STATUS_UC) ? "UE" : "CE"), |
683 | ((m->status & MCI_STATUS_MISCV) ? "MiscV" : "-"), | 685 | ((m->status & MCI_STATUS_MISCV) ? "MiscV" : "-"), |
@@ -697,7 +699,7 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data) | |||
697 | pr_cont("]: 0x%016llx\n", m->status); | 699 | pr_cont("]: 0x%016llx\n", m->status); |
698 | 700 | ||
699 | if (m->status & MCI_STATUS_ADDRV) | 701 | if (m->status & MCI_STATUS_ADDRV) |
700 | pr_emerg(HW_ERR "\tMC%d_ADDR: 0x%016llx\n", m->bank, m->addr); | 702 | pr_emerg(HW_ERR "MC%d_ADDR: 0x%016llx\n", m->bank, m->addr); |
701 | 703 | ||
702 | switch (m->bank) { | 704 | switch (m->bank) { |
703 | case 0: | 705 | case 0: |