]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Feb 2022 09:02:36 +0000 (10:02 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Feb 2022 09:02:36 +0000 (10:02 +0100)
added patches:
mtd-rawnand-brcmnand-fixed-incorrect-sub-page-ecc-status.patch

queue-4.9/mtd-rawnand-brcmnand-fixed-incorrect-sub-page-ecc-status.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/mtd-rawnand-brcmnand-fixed-incorrect-sub-page-ecc-status.patch b/queue-4.9/mtd-rawnand-brcmnand-fixed-incorrect-sub-page-ecc-status.patch
new file mode 100644 (file)
index 0000000..117c89c
--- /dev/null
@@ -0,0 +1,45 @@
+From 36415a7964711822e63695ea67fede63979054d9 Mon Sep 17 00:00:00 2001
+From: david regan <dregan@mail.com>
+Date: Wed, 26 Jan 2022 23:43:44 +0100
+Subject: mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status
+
+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>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/mtd/nand/brcmnand/brcmnand.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- 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 m
+                                       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,
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e8e53aabba7f558dab207a18072d5bd6ae1f50f7 100644 (file)
@@ -0,0 +1 @@
+mtd-rawnand-brcmnand-fixed-incorrect-sub-page-ecc-status.patch