9
0
Fork 0

mtd: fix reading data from page that needs cleanup

mtd_read´() returns -EUCLEAN to indicate that a page needs cleanup.
This value shouldn't be returned from the mtd read file operation
since this should return the number of bytes read.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2017-03-20 13:26:09 +01:00
parent 26a1aedb1b
commit 66d7674f8b
1 changed files with 3 additions and 4 deletions

View File

@ -105,11 +105,10 @@ static ssize_t mtd_op_read(struct cdev *cdev, void* buf, size_t count,
offset, count);
ret = mtd_read(mtd, offset, count, &retlen, buf);
if (ret < 0)
if (ret < 0 && ret != -EUCLEAN)
return ret;
if (mtd->ecc_strength == 0)
return retlen; /* device lacks ecc */
return ret >= mtd->bitflip_threshold ? -EUCLEAN : retlen;
return retlen;
}
#define NOTALIGNED(x) (x & (mtd->writesize - 1)) != 0