The calculation of the oobfree[0].offset is wrong when using BCH8
and elm.

The layout->eccbytes is already steps*info->nand.ecc.bytes. The second
multiplication with steps is too much and will create a value
larger than the oob area.

Fixed the calculation.

Signed-off-by: Teresa Gámez <[email protected]>
---
 drivers/mtd/nand/omap2.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
index 81b80af..922706b 100644
--- a/drivers/mtd/nand/omap2.c
+++ b/drivers/mtd/nand/omap2.c
@@ -1790,7 +1790,7 @@ static int omap3_init_bch_tail(struct mtd_info *mtd)
                layout->eccpos[i] = offset + i;
 
        if (info->is_elm_used && (info->nand.ecc.bytes == BCH8_SIZE))
-               layout->oobfree[0].offset = 2 + layout->eccbytes * steps;
+               layout->oobfree[0].offset = 2 + layout->eccbytes;
        else
                layout->oobfree[0].offset = 2;
 
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to