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-31c371225e... [florian: make patch apply to 4.19] Signed-off-by: Florian Fainelli f.fainelli@gmail.com --- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/raw/brcmnand/brcmnand.c index 774ffa9e23f3..2b02f558b5e1 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/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,
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-31c371225e... [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(-)
diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c index c65724d0c725..0138c0c6a4b9 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,
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-31c371225e... [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(-)
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,
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-31c371225e... [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?
thanks,
greg k-h
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-31c371225e... [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.
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-31c371225e... [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
On 2/23/2022 10:24 AM, Greg KH wrote:
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-31c371225e... [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?
We don't, sorry I got an email that the patch failed to apply and forgot to check 4.19 and 4.14 thinking they would not be there.
For 4.9 we need the backport, I'll take that one...
Thanks!
linux-stable-mirror@lists.linaro.org