Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 336541
b: refs/heads/master
c: d5c6770
h: refs/heads/master
i:
  336539: 56d8220
v: v3
  • Loading branch information
Borislav Petkov authored and Borislav Petkov committed Nov 28, 2012
1 parent 09d1856 commit d02243a
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d824c7718b78b6a5afae7fc78731b70318cd076f
refs/heads/master: d5c6770d4cb27bc33aa433cf8fb848ad9af6644b
22 changes: 20 additions & 2 deletions trunk/drivers/edac/mce_amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,22 @@ static bool amd_filter_mce(struct mce *m)
return false;
}

static const char *decode_error_status(struct mce *m)
{
if (m->status & MCI_STATUS_UC) {
if (m->status & MCI_STATUS_PCC)
return "System Fatal error.";
if (m->mcgstatus & MCG_STATUS_RIPV)
return "Uncorrected, software restartable error.";
return "Uncorrected, software containable error.";
}

if (m->status & MCI_STATUS_DEFERRED)
return "Deferred error.";

return "Corrected error, no action required.";
}

int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
{
struct mce *m = (struct mce *)data;
Expand Down Expand Up @@ -712,6 +728,8 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
break;
}

pr_emerg(HW_ERR "Error Status: %s\n", decode_error_status(m));

pr_emerg(HW_ERR "CPU:%d (%x:%x:%x) MC%d_STATUS[%s|%s|%s|%s|%s",
m->extcpu,
c->x86, c->x86_model, c->x86_mask,
Expand All @@ -724,8 +742,8 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)

if (c->x86 == 0x15)
pr_cont("|%s|%s",
((m->status & BIT_64(44)) ? "Deferred" : "-"),
((m->status & BIT_64(43)) ? "Poison" : "-"));
((m->status & MCI_STATUS_DEFERRED) ? "Deferred" : "-"),
((m->status & MCI_STATUS_POISON) ? "Poison" : "-"));

/* do the two bits[14:13] together */
ecc = (m->status >> 45) & 0x3;
Expand Down
6 changes: 2 additions & 4 deletions trunk/drivers/edac/mce_amd.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,8 @@
#define R4(x) (((x) >> 4) & 0xf)
#define R4_MSG(x) ((R4(x) < 9) ? rrrr_msgs[R4(x)] : "Wrong R4!")

/*
* F3x4C bits (MCi_STATUS' high half)
*/
#define NBSH_ERR_CPU_VAL BIT(24)
#define MCI_STATUS_DEFERRED BIT_64(44)
#define MCI_STATUS_POISON BIT_64(43)

enum tt_ids {
TT_INSTR = 0,
Expand Down

0 comments on commit d02243a

Please sign in to comment.