Browse Source

edac: ibecc: Return -ENODATA on zero log

Return -ENODATA when we read zero log.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
pull/40540/head
Andrei Emeltchenko 4 years ago committed by Anas Nashif
parent
commit
d11fae6d06
  1. 6
      drivers/edac/edac_ibecc.c
  2. 4
      tests/subsys/edac/ibecc/src/ibecc.c

6
drivers/edac/edac_ibecc.c

@ -198,6 +198,9 @@ static int inject_error_trigger(const struct device *dev) @@ -198,6 +198,9 @@ static int inject_error_trigger(const struct device *dev)
static int ecc_error_log_get(const struct device *dev, uint64_t *value)
{
*value = ibecc_read_reg64(dev, IBECC_ECC_ERROR_LOG);
if (*value == 0) {
return -ENODATA;
}
return 0;
}
@ -214,6 +217,9 @@ static int ecc_error_log_clear(const struct device *dev) @@ -214,6 +217,9 @@ static int ecc_error_log_clear(const struct device *dev)
static int parity_error_log_get(const struct device *dev, uint64_t *value)
{
*value = ibecc_read_reg64(dev, IBECC_PARITY_ERROR_LOG);
if (*value == 0) {
return -ENODATA;
}
return 0;
}

4
tests/subsys/edac/ibecc/src/ibecc.c

@ -58,13 +58,13 @@ static void test_ibecc_api(void) @@ -58,13 +58,13 @@ static void test_ibecc_api(void)
/* Error log API */
ret = edac_ecc_error_log_get(dev, &value);
zassert_equal(ret, 0, "edac_ecc_error_log_get failed");
zassert_equal(ret, -ENODATA, "edac_ecc_error_log_get failed");
ret = edac_ecc_error_log_clear(dev);
zassert_equal(ret, 0, "edac_ecc_error_log_clear failed");
ret = edac_parity_error_log_get(dev, &value);
zassert_equal(ret, 0, "edac_parity_error_log_get failed");
zassert_equal(ret, -ENODATA, "edac_parity_error_log_get failed");
ret = edac_parity_error_log_clear(dev);
zassert_equal(ret, 0, "edac_parity_error_log_clear failed");

Loading…
Cancel
Save