From: Dan Brown Date: Wed, 6 Apr 2005 20:13:09 +0000 (+0100) Subject: [MTD] NAND: Fix reading of autoplaced OOB when there are multiple free sections. X-Git-Tag: v2.6.13-rc3~93^2~49 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=82e1d19fc3e6bd20b65937352a015a412b751d47;p=~emulex%2Finfiniband.git [MTD] NAND: Fix reading of autoplaced OOB when there are multiple free sections. Signed-off-by: Dan Brown Signed-off-by: Thomas Gleixner --- diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 02e58f5ac72..b73f3c4e892 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -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 */