[linux-yocto] [PATCH 09/13] MIPS/EDAC: Poll for LMC_INT_REG[nxm_wr_err]
Chandrakala Chavva
cchavva.cavm at gmail.com
Mon Jan 26 22:04:15 PST 2015
From: Abhishek Paliwal <abhishek.paliwal at aricent.com>
From: Chandrakala Chavva <cchavva at caviumnetworks.com>
Add missing error interrupt, nxm_wr_err, write to no-existent memory.
MIPS/EDAC: Set error reporting state to polling
For LMC controller set error reporting state to EDAC_OPSTATE_POLL.
Signed-off-by: Chandrakala Chavva <cchavva at caviumnetworks.com>
Signed-off-by: Abhishek Paliwal <abhishek.paliwal at aricent.com>
---
drivers/edac/octeon_edac-lmc.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/edac/octeon_edac-lmc.c b/drivers/edac/octeon_edac-lmc.c
index 6543d3f..25d051e 100644
--- a/drivers/edac/octeon_edac-lmc.c
+++ b/drivers/edac/octeon_edac-lmc.c
@@ -82,6 +82,14 @@ static void octeon_lmc_edac_poll_o2(struct mem_ctl_info *mci)
int_reg.s.ded_err = -1; /* Done, re-arm */
do_clear = true;
}
+ if (int_reg.s.nxm_wr_err) {
+ snprintf(msg, sizeof(msg), "NXM_WR_ERR: Write to non-existent memory");
+ edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0,
+ -1, -1, -1, msg, "");
+ int_reg.s.nxm_wr_err = -1; /* Done, re-arm */
+ do_clear = true;
+ }
+
if (do_clear)
cvmx_write_csr(CVMX_LMCX_INT(mci->mc_idx), int_reg.u64);
}
@@ -96,6 +104,8 @@ static int octeon_lmc_edac_probe(struct platform_device *pdev)
layers[0].size = 1;
layers[0].is_virt_csrow = false;
+ edac_op_state = EDAC_OPSTATE_POLL;
+
if (OCTEON_IS_OCTEON1PLUS()) {
union cvmx_lmcx_mem_cfg0 cfg0;
--
1.8.1.4
More information about the linux-yocto
mailing list