[PATCH] NAND: fix remaining OOB length calculation
[firefly-linux-kernel-4.4.55.git] / drivers / mtd / nand / nand_base.c
index 77406fcf53b37295dec51966af6be4c4da3d8af3..e74678e928cf500b741d9331b1b006c18f837717 100644 (file)
@@ -883,7 +883,7 @@ static int nand_read_page_syndrome(struct mtd_info *mtd, struct nand_chip *chip,
        }
 
        /* Calculate remaining oob bytes */
-       i = oob - chip->oob_poi;
+       i = mtd->oobsize - (oob - chip->oob_poi);
        if (i)
                chip->read_buf(mtd, oob, i);
 
@@ -1334,7 +1334,7 @@ static void nand_write_page_syndrome(struct mtd_info *mtd,
        }
 
        /* Calculate remaining oob bytes */
-       i = oob - chip->oob_poi;
+       i = mtd->oobsize - (oob - chip->oob_poi);
        if (i)
                chip->write_buf(mtd, oob, i);
 }