summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAristeu Rozanski <arozansk@redhat.com>2013-10-30 16:27:05 (GMT)
committerMauro Carvalho Chehab <m.chehab@samsung.com>2013-11-14 18:50:03 (GMT)
commitbe3036d220c9f9350c9da92e9b4e66855cf90889 (patch)
treea26a8e9f0db854a0ebc602748cd53987b7c5fd93
parentea779b5a097c382e1ae64010fe5e928a86b817ec (diff)
downloadlinux-be3036d220c9f9350c9da92e9b4e66855cf90889.tar.xz
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>
-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 7f79511..90a62ff 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,
}
}
+ /* Only decode errors with an valid address (ADDRV) */
+ if (!GET_BITFIELD(m->status, 58, 58))
+ return;
+
rc = get_memory_error_data(mci, m->addr, &socket,
&channel_mask, &rank, &area_type, msg);
if (rc < 0)