From: Abhishek Paliwal <abhishek.pali...@aricent.com>

From: Chandrakala Chavva <ccha...@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 <ccha...@caviumnetworks.com>
Signed-off-by: Abhishek Paliwal <abhishek.pali...@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

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to