Messages in this thread Patch in this message | | | From | "she90122 ." <> | Date | Wed, 1 Apr 2020 13:13:39 +0800 | Subject | [RESEND,v3,1/1] EDAC: (pnd2) Change the return value of function apl_check_ecc_active() & dnv_check_ecc_active() when installed the non-ECC memory device. |
| |
From: Amy Shih <amy.shih@advantech.com.tw>
Set function apl_check_ecc_active() & dnv_check_ecc_active() to return -ENXIO when installed the non-ECC memory device. And print the message in pnd2_init() accordingly.
Signed-off-by: Amy Shih <amy.shih@advantech.com.tw> --- Changes in v3: - Change the return value of function check_ecc when installed the non-ECC memory device. Changes in v2: - Remove the word "error" from output message.
drivers/edac/pnd2_edac.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/edac/pnd2_edac.c b/drivers/edac/pnd2_edac.c index 933f772..27172d7 100644 --- a/drivers/edac/pnd2_edac.c +++ b/drivers/edac/pnd2_edac.c @@ -1089,7 +1089,7 @@ static int apl_check_ecc_active(void) for (i = 0; i < APL_NUM_CHANNELS; i++) if (chan_mask & BIT(i)) ret += check_channel(i); - return ret ? -EINVAL : 0; + return ret ? -ENXIO : 0; }
#define DIMMS_PRESENT(d) ((d)->rken0 + (d)->rken1 + (d)->rken2 + (d)->rken3) @@ -1111,7 +1111,7 @@ static int dnv_check_ecc_active(void)
for (i = 0; i < DNV_NUM_CHANNELS; i++) ret += check_unit(i); - return ret ? -EINVAL : 0; + return ret ? -ENXIO : 0; }
static int get_memory_error_data(struct mem_ctl_info *mci, u64 addr, @@ -1572,7 +1572,12 @@ static int __init pnd2_init(void)
rc = pnd2_probe(); if (rc < 0) { - pnd2_printk(KERN_ERR, "Failed to register device with error %d.\n", rc); + if (rc == -ENXIO) + pnd2_printk(KERN_INFO, "System is not using ECC memory\n"); + else + pnd2_printk(KERN_ERR, + "Failed to register device with error %d.\n", + rc); return rc; }
-- 1.8.3.1
| |