Message ID | 20220223174431.1083-3-f.fainelli@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [RESEND,4.9] mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status | expand |
On Wed, Feb 23, 2022 at 09:54:59AM -0800, Florian Fainelli wrote: > > > On 2/23/2022 9:54 AM, Greg KH wrote: > > On Wed, Feb 23, 2022 at 09:44:31AM -0800, Florian Fainelli wrote: > > > From: david regan <dregan@mail.com> > > > > > > commit 36415a7964711822e63695ea67fede63979054d9 upstream > > > > > > The brcmnand driver contains a bug in which if a page (example 2k byte) > > > is read from the parallel/ONFI NAND and within that page a subpage (512 > > > byte) has correctable errors which is followed by a subpage with > > > uncorrectable errors, the page read will return the wrong status of > > > correctable (as opposed to the actual status of uncorrectable.) > > > > > > The bug is in function brcmnand_read_by_pio where there is a check for > > > uncorrectable bits which will be preempted if a previous status for > > > correctable bits is detected. > > > > > > The fix is to stop checking for bad bits only if we already have a bad > > > bits status. > > > > > > Fixes: 27c5b17cd1b1 ("mtd: nand: add NAND driver "library" for Broadcom STB NAND controller") > > > Signed-off-by: david regan <dregan@mail.com> > > > Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> > > > Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> > > > Link: https://lore.kernel.org/linux-mtd/trinity-478e0c09-9134-40e8-8f8c-31c371225eda-1643237024774@3c-app-mailcom-lxa02 > > > [florian: make patch apply to 4.14, file was renamed] > > > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> > > > --- > > > drivers/mtd/nand/brcmnand/brcmnand.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > Why is this a RESEND? What happened with the first set? > > I forgot to copy stable and you and Sasha, wanted to make it clear to the > MTD folks why this is being resent. But this commit is already in the 4.14.268 and 4.19.231 release, why do we need to add it again? For 4.9 we need the backport, I'll take that one... thanks, greg k-h
diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c index 40fdc9d267b9..1c8e95cf29d2 100644 --- a/drivers/mtd/nand/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/brcmnand/brcmnand.c @@ -1637,7 +1637,7 @@ static int brcmnand_read_by_pio(struct mtd_info *mtd, struct nand_chip *chip, mtd->oobsize / trans, host->hwcfg.sector_size_1k); - if (!ret) { + if (ret != -EBADMSG) { *err_addr = brcmnand_read_reg(ctrl, BRCMNAND_UNCORR_ADDR) | ((u64)(brcmnand_read_reg(ctrl,