summaryrefslogtreecommitdiffstats
path: root/libflash/blocklevel.c
diff options
context:
space:
mode:
authorCyril Bur <cyril.bur@au1.ibm.com>2015-08-24 13:31:16 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-08-28 15:13:19 +1000
commit1b30e6879819256497d24b46934558166fee5682 (patch)
tree54ea18ceaf9c5bf47f85154c6eab3b490a805e9c /libflash/blocklevel.c
parente4a7821a8ee93f24914a5f576e30c09a5564260c (diff)
downloadblackbird-skiboot-1b30e6879819256497d24b46934558166fee5682.tar.gz
blackbird-skiboot-1b30e6879819256497d24b46934558166fee5682.zip
libflash/blocklevel: Fix blocklevel read ECC failure return code
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@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'libflash/blocklevel.c')
-rw-r--r--libflash/blocklevel.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libflash/blocklevel.c b/libflash/blocklevel.c
index e97859c8..90bfffb0 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);
OpenPOWER on IntegriCloud