[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