FAILED: patch "[PATCH] mtd: rawnand: fix return value check for bad block status" failed to apply to 4.14-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
e9893e6fa932f42c90c4ac5849fa9aa0f0f00a34Mon Sep 17 00:00:00 2001
From: Abhishek Sahu <[email protected]>
Date: Wed, 13 Jun 2018 14:32:36 +0530
Subject: [PATCH] mtd: rawnand: fix return value check for bad block status
Positive return value from read_oob() is making false BAD blocks. For some of the NAND controllers, OOB bytes will be protected with ECC and read_oob() will return number of bitflips. If there is any bitflip in ECC protected OOB bytes for BAD block status page, then that block is getting treated as BAD.
drivers/mtd/nand/raw/nand_base.c +1 -1
@@ -440,7 +440,7 @@ static int nand_block_bad(struct mtd_info *mtd, loff_t ofs)for (; page < page_end; page++) { res = chip->ecc.read_oob (mtd, chip, page); -if (res) +if (res <0 )return res; bad = chip->oob_poi[chip->badblockpos];