aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac
diff options
context:
space:
mode:
authorAristeu Rozanski <arozansk@redhat.com>2013-10-30 12:27:05 -0400
committerMauro Carvalho Chehab <m.chehab@samsung.com>2013-11-14 13:50:03 -0500
commitbe3036d220c9f9350c9da92e9b4e66855cf90889 (patch)
treea26a8e9f0db854a0ebc602748cd53987b7c5fd93 /drivers/edac
parentea779b5a097c382e1ae64010fe5e928a86b817ec (diff)
sb_edac: avoid decoding the same error multiple times
Whenever the extended error reporting is active, multiple MCEs will be generated for the same event, which will lead to multiple repeated errors to be reported. So check ADDRV and only decode the error if the MCE address is valid. Signed-off-by: Aristeu Rozanski <arozansk@redhat.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/edac')
-rw-r--r--drivers/edac/sb_edac.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
index 7f795119b572..90a62ffda626 100644
--- a/drivers/edac/sb_edac.c
+++ b/drivers/edac/sb_edac.c
@@ -1427,6 +1427,10 @@ static void sbridge_mce_output_error(struct mem_ctl_info *mci,
1427 } 1427 }
1428 } 1428 }
1429 1429
1430 /* Only decode errors with an valid address (ADDRV) */
1431 if (!GET_BITFIELD(m->status, 58, 58))
1432 return;
1433
1430 rc = get_memory_error_data(mci, m->addr, &socket, 1434 rc = get_memory_error_data(mci, m->addr, &socket,
1431 &channel_mask, &rank, &area_type, msg); 1435 &channel_mask, &rank, &area_type, msg);
1432 if (rc < 0) 1436 if (rc < 0)