EDAC, MCE: Add F15h FP MCE decoder
Add decoder for FP MCEs. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
This commit is contained in:
parent
8259a7e572
commit
b8f85c477b
|
@ -692,6 +692,46 @@ wrong_fr_mce:
|
||||||
pr_emerg(HW_ERR "Corrupted FR MCE info?\n");
|
pr_emerg(HW_ERR "Corrupted FR MCE info?\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void amd_decode_fp_mce(struct mce *m)
|
||||||
|
{
|
||||||
|
u8 xec = (m->status >> 16) & xec_mask;
|
||||||
|
|
||||||
|
pr_emerg(HW_ERR "Floating Point Unit Error: ");
|
||||||
|
|
||||||
|
switch (xec) {
|
||||||
|
case 0x1:
|
||||||
|
pr_cont("Free List");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0x2:
|
||||||
|
pr_cont("Physical Register File");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0x3:
|
||||||
|
pr_cont("Retire Queue");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0x4:
|
||||||
|
pr_cont("Scheduler table");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0x5:
|
||||||
|
pr_cont("Status Register File");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
goto wrong_fp_mce;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
pr_cont(" parity error.\n");
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
wrong_fp_mce:
|
||||||
|
pr_emerg(HW_ERR "Corrupted FP MCE info?\n");
|
||||||
|
}
|
||||||
|
|
||||||
static inline void amd_decode_err_code(u16 ec)
|
static inline void amd_decode_err_code(u16 ec)
|
||||||
{
|
{
|
||||||
if (TLB_ERROR(ec)) {
|
if (TLB_ERROR(ec)) {
|
||||||
|
@ -777,6 +817,10 @@ int amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
|
||||||
amd_decode_fr_mce(m);
|
amd_decode_fr_mce(m);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 6:
|
||||||
|
amd_decode_fp_mce(m);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue