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 <t.gamez@xxxxxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html