mtdblock: tolerate corrected bit-flips

mtd_read() may return -EUCLEAN in case of corrected bit-flips.This
particular condition should not be treated like an error.

Signed-off-by: Bang Li <libang.linuxer@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230314165653.252673-1-libang.linuxer@gmail.com
This commit is contained in:
Bang Li 2023-03-15 00:56:53 +08:00 committed by Miquel Raynal
parent 57150c40b6
commit e6b0922a9c
1 changed files with 3 additions and 1 deletions

View File

@ -16,8 +16,10 @@ static int mtdblock_readsect(struct mtd_blktrans_dev *dev,
unsigned long block, char *buf)
{
size_t retlen;
int err;
if (mtd_read(dev->mtd, (block * 512), 512, &retlen, buf))
err = mtd_read(dev->mtd, (block * 512), 512, &retlen, buf);
if (err && !mtd_is_bitflip(err))
return 1;
return 0;
}