]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mtd: rawnand: brcmnand: fix hamming oob layout
authorÁlvaro Fernández Rojas <noltari@gmail.com>
Tue, 12 May 2020 07:57:32 +0000 (09:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jun 2020 07:33:09 +0000 (09:33 +0200)
commit 130bbde4809b011faf64f99dddc14b4b01f440c3 upstream.

First 2 bytes are used in large-page nand.

Fixes: ef5eeea6e911 ("mtd: nand: brcm: switch to mtd_ooblayout_ops")
Cc: stable@vger.kernel.org
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200512075733.745374-2-noltari@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mtd/nand/raw/brcmnand/brcmnand.c

index 8f9ffb46a09f3ede73c6ada9df22673bcde2b264..52402aa7b4d31fbd27dee458bf87712a940eb9ca 100644 (file)
@@ -1116,11 +1116,14 @@ static int brcmnand_hamming_ooblayout_free(struct mtd_info *mtd, int section,
                if (!section) {
                        /*
                         * Small-page NAND use byte 6 for BBI while large-page
-                        * NAND use byte 0.
+                        * NAND use bytes 0 and 1.
                         */
-                       if (cfg->page_size > 512)
-                               oobregion->offset++;
-                       oobregion->length--;
+                       if (cfg->page_size > 512) {
+                               oobregion->offset += 2;
+                               oobregion->length -= 2;
+                       } else {
+                               oobregion->length--;
+                       }
                }
        }