[Skiboot] [PATCH 1/2] libflash/blocklevel: Fix blocklevel read ECC failure return code

Cyril Bur cyril.bur at au1.ibm.com
Mon Aug 24 13:31:16 AEST 2015


If an ECC check fails in blocklevel_read(), the return code from
blocklevel_read() won't be correct.

Signed-off-by: Cyril Bur <cyril.bur at au1.ibm.com>
---
 libflash/blocklevel.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libflash/blocklevel.c b/libflash/blocklevel.c
index d9be775..241936f 100644
--- a/libflash/blocklevel.c
+++ b/libflash/blocklevel.c
@@ -82,7 +82,10 @@ int blocklevel_read(struct blocklevel_device *bl, uint32_t pos, void *buf, uint3
 	if (rc)
 		goto out;
 
-	rc = memcpy_from_ecc(buf, buffer, len);
+	if (memcpy_from_ecc(buf, buffer, len)) {
+		errno = EBADF;
+		rc = FLASH_ERR_ECC_INVALID;
+	}
 
 out:
 	free(buffer);
-- 
2.5.0



More information about the Skiboot mailing list