From: Boris BREZILLON Date: Wed, 30 Sep 2015 21:45:29 +0000 (+0200) Subject: mtd: nand: sunxi: fix bitflips in erased pages X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=146b503e102778ee98d8ba59e9e178ab26a4af5b;p=sagit-ice-cold%2Fkernel_xiaomi_msm8998.git mtd: nand: sunxi: fix bitflips in erased pages Use the nand_check_erased_ecc_chunk() function to test if the ECC error was triggered by an erased page containing a few bitflips. Signed-off-by: Boris Brezillon Signed-off-by: Brian Norris --- diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c index a76eb5173bb8..92245a312334 100644 --- a/drivers/mtd/nand/sunxi_nand.c +++ b/drivers/mtd/nand/sunxi_nand.c @@ -611,7 +611,9 @@ static int sunxi_nfc_hw_ecc_read_chunk(struct mtd_info *mtd, sunxi_nfc_read_buf(mtd, oob, ecc->bytes + 4); if (status & NFC_ECC_ERR(0)) { - ret = -EIO; + ret = nand_check_erased_ecc_chunk(data, ecc->size, + oob, ecc->bytes + 4, + NULL, 0, ecc->strength); } else { /* * The engine protects 4 bytes of OOB data per chunk.