diff options
author | Cyril Bur <cyril.bur@au1.ibm.com> | 2015-08-24 13:31:16 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-08-28 15:13:19 +1000 |
commit | 1b30e6879819256497d24b46934558166fee5682 (patch) | |
tree | 54ea18ceaf9c5bf47f85154c6eab3b490a805e9c /libflash | |
parent | e4a7821a8ee93f24914a5f576e30c09a5564260c (diff) | |
download | skiboot-1b30e6879819256497d24b46934558166fee5682.zip skiboot-1b30e6879819256497d24b46934558166fee5682.tar.gz skiboot-1b30e6879819256497d24b46934558166fee5682.tar.bz2 |
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')
-rw-r--r-- | libflash/blocklevel.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libflash/blocklevel.c b/libflash/blocklevel.c index e97859c..90bfffb 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); |