aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/mce_amd.c
diff options
context:
space:
mode:
authorBorislav Petkov <borislav.petkov@amd.com>2010-08-31 12:38:24 -0400
committerBorislav Petkov <bp@amd64.org>2010-10-21 08:48:03 -0400
commitfe4ea2623bec3e595f8e77a8514307c389c096ae (patch)
tree91a9bab933faace5c4ebbd47cb200cee4dbff519 /drivers/edac/mce_amd.c
parent5ce88f6ea6bef929f59f9468413f922c9a486fa4 (diff)
EDAC, MCE: Fix FR MCEs decoding
Those are N/A on K8, so don't decode them there. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'drivers/edac/mce_amd.c')
-rw-r--r--drivers/edac/mce_amd.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
index d8d1c9de1ed6..83b7b5fcee7f 100644
--- a/drivers/edac/mce_amd.c
+++ b/drivers/edac/mce_amd.c
@@ -487,11 +487,17 @@ EXPORT_SYMBOL_GPL(amd_decode_nb_mce);
487 487
488static void amd_decode_fr_mce(struct mce *m) 488static void amd_decode_fr_mce(struct mce *m)
489{ 489{
490 if (boot_cpu_data.x86 == 0xf)
491 goto wrong_fr_mce;
492
490 /* we have only one error signature so match all fields at once. */ 493 /* we have only one error signature so match all fields at once. */
491 if ((m->status & 0xffff) == 0x0f0f) 494 if ((m->status & 0xffff) == 0x0f0f) {
492 pr_emerg(HW_ERR " FR Error: CPU Watchdog timer expire.\n"); 495 pr_emerg(HW_ERR "FR Error: CPU Watchdog timer expire.\n");
493 else 496 return;
494 pr_emerg(HW_ERR "Corrupted FR MCE info?\n"); 497 }
498
499wrong_fr_mce:
500 pr_emerg(HW_ERR "Corrupted FR MCE info?\n");
495} 501}
496 502
497static inline void amd_decode_err_code(u16 ec) 503static inline void amd_decode_err_code(u16 ec)