Browse Source

[PATCH] NAND: fix remaining OOB length calculation

In nand_read_page_syndrome/nand_write_page_syndrome the calculation of
the remaining oob length which is not used by the prepad/ecc/postpad
areas is wrong.

Signed-off-by: Vitaly Wool <vwool@ru.mvista.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Vitaly Wool 19 years ago
parent
commit
7e4178f90e
1 changed files with 2 additions and 2 deletions
  1. 2 2
      drivers/mtd/nand/nand_base.c

+ 2 - 2
drivers/mtd/nand/nand_base.c

@@ -883,7 +883,7 @@ static int nand_read_page_syndrome(struct mtd_info *mtd, struct nand_chip *chip,
 	}
 	}
 
 
 	/* Calculate remaining oob bytes */
 	/* Calculate remaining oob bytes */
-	i = oob - chip->oob_poi;
+	i = mtd->oobsize - (oob - chip->oob_poi);
 	if (i)
 	if (i)
 		chip->read_buf(mtd, oob, 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 */
 	/* Calculate remaining oob bytes */
-	i = oob - chip->oob_poi;
+	i = mtd->oobsize - (oob - chip->oob_poi);
 	if (i)
 	if (i)
 		chip->write_buf(mtd, oob, i);
 		chip->write_buf(mtd, oob, i);
 }
 }