Skip to content

Commit 432de7f

Browse files
aeglsuryasaimadhu
authored andcommitted
EDAC, {i7core,sb,skx}_edac: Fix uncorrected error counting
The count of errors is picked up from bits 52:38 of the machine check bank status register. But this is the count of *corrected* errors. If an uncorrected error is being logged, the h/w sets this field to 0. Which means that when edac_mc_handle_error() is called, the EDAC core will carefully add zero to the appropriate uncorrected error counts. Signed-off-by: Tony Luck <tony.luck@intel.com> [ Massage commit message. ] Signed-off-by: Borislav Petkov <bp@suse.de> Cc: stable@vger.kernel.org Cc: Aristeu Rozanski <aris@redhat.com> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: Qiuxu Zhuo <qiuxu.zhuo@intel.com> Cc: linux-edac <linux-edac@vger.kernel.org> Link: http://lkml.kernel.org/r/20180928213934.19890-1-tony.luck@intel.com
1 parent 8537bf1 commit 432de7f

File tree

3 files changed

+3
-0
lines changed

3 files changed

+3
-0
lines changed

drivers/edac/i7core_edac.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1711,6 +1711,7 @@ static void i7core_mce_output_error(struct mem_ctl_info *mci,
17111711
u32 errnum = find_first_bit(&error, 32);
17121712

17131713
if (uncorrected_error) {
1714+
core_err_cnt = 1;
17141715
if (ripv)
17151716
tp_event = HW_EVENT_ERR_FATAL;
17161717
else

drivers/edac/sb_edac.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2982,6 +2982,7 @@ static void sbridge_mce_output_error(struct mem_ctl_info *mci,
29822982
recoverable = GET_BITFIELD(m->status, 56, 56);
29832983

29842984
if (uncorrected_error) {
2985+
core_err_cnt = 1;
29852986
if (ripv) {
29862987
type = "FATAL";
29872988
tp_event = HW_EVENT_ERR_FATAL;

drivers/edac/skx_edac.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -959,6 +959,7 @@ static void skx_mce_output_error(struct mem_ctl_info *mci,
959959
recoverable = GET_BITFIELD(m->status, 56, 56);
960960

961961
if (uncorrected_error) {
962+
core_err_cnt = 1;
962963
if (ripv) {
963964
type = "FATAL";
964965
tp_event = HW_EVENT_ERR_FATAL;

0 commit comments

Comments
 (0)