[MTD] NAND: Fix reading of autoplaced OOB when there are multiple free sections.
authorDan Brown <dan_brown@ieee.org>
Wed, 6 Apr 2005 20:13:09 +0000 (21:13 +0100)
committerThomas Gleixner <tglx@mtd.linutronix.de>
Mon, 23 May 2005 11:10:30 +0000 (13:10 +0200)
Signed-off-by: Dan Brown <dan_brown@ieee.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/mtd/nand/nand_base.c

index 02e58f5..b73f3c4 100644 (file)
@@ -59,7 +59,7 @@
  *     The AG-AND chips have nice features for speed improvement,
  *     which are not supported yet. Read / program 4 pages in one go.
  *
- * $Id: nand_base.c,v 1.140 2005/04/04 18:56:29 gleixner Exp $
+ * $Id: nand_base.c,v 1.141 2005/04/06 20:13:05 dbrown Exp $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -1285,13 +1285,12 @@ int nand_do_read_ecc (struct mtd_info *mtd, loff_t from, size_t len,
                        switch(oobsel->useecc) {
                        case MTD_NANDECC_AUTOPLACE:
                                /* Walk through the autoplace chunks */
-                               for (i = 0, j = 0; j < mtd->oobavail; i++) {
+                               for (i = 0; oobsel->oobfree[i][1]; i++) {
                                        int from = oobsel->oobfree[i][0];
                                        int num = oobsel->oobfree[i][1];
                                        memcpy(&oob_buf[oob], &oob_data[from], num);
-                                       j+= num;
+                                       oob += num;
                                }
-                               oob += mtd->oobavail;
                                break;
                        case MTD_NANDECC_PLACE:
                                /* YAFFS1 legacy mode */