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)
static int ecc_error_log_get(const struct device *dev, uint64_t *value) static int ecc_error_log_get(const struct device *dev, uint64_t *value)
{ {
*value = ibecc_read_reg64(dev, IBECC_ECC_ERROR_LOG); *value = ibecc_read_reg64(dev, IBECC_ECC_ERROR_LOG);
if (*value == 0) {
return -ENODATA;
}
return 0; return 0;
} }
@ -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) static int parity_error_log_get(const struct device *dev, uint64_t *value)
{ {
*value = ibecc_read_reg64(dev, IBECC_PARITY_ERROR_LOG); *value = ibecc_read_reg64(dev, IBECC_PARITY_ERROR_LOG);
if (*value == 0) {
return -ENODATA;
}
return 0; return 0;
} }

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

@ -58,13 +58,13 @@ static void test_ibecc_api(void)
/* Error log API */ /* Error log API */
ret = edac_ecc_error_log_get(dev, &value); 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); ret = edac_ecc_error_log_clear(dev);
zassert_equal(ret, 0, "edac_ecc_error_log_clear failed"); zassert_equal(ret, 0, "edac_ecc_error_log_clear failed");
ret = edac_parity_error_log_get(dev, &value); 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); ret = edac_parity_error_log_clear(dev);
zassert_equal(ret, 0, "edac_parity_error_log_clear failed"); zassert_equal(ret, 0, "edac_parity_error_log_clear failed");

Loading…
Cancel
Save