| From bb38eefb6858ce16b34716145b9597a5680aa54c Mon Sep 17 00:00:00 2001 |
| From: Pekon Gupta <pekon@ti.com> |
| Date: Mon, 17 Feb 2014 13:11:25 +0530 |
| Subject: mtd: nand: omap: fix ecclayout->oobfree->length |
| |
| From: Pekon Gupta <pekon@ti.com> |
| |
| commit bb38eefb6858ce16b34716145b9597a5680aa54c upstream. |
| |
| This patch excludes reserved-marker byte-position from oobfree->length |
| calculation. Thus all bytes from oobfree->offset till end of OOB are free. |
| |
| Signed-off-by: Pekon Gupta <pekon@ti.com> |
| Signed-off-by: Brian Norris <computersforpeace@gmail.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/mtd/nand/omap2.c | 5 ++--- |
| 1 file changed, 2 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/mtd/nand/omap2.c |
| +++ b/drivers/mtd/nand/omap2.c |
| @@ -2000,9 +2000,8 @@ static int omap_nand_probe(struct platfo |
| goto return_error; |
| } |
| |
| - /* populate remaining ECC layout data */ |
| - ecclayout->oobfree->length = mtd->oobsize - (BADBLOCK_MARKER_LENGTH + |
| - ecclayout->eccbytes); |
| + /* all OOB bytes from oobfree->offset till end off OOB are free */ |
| + ecclayout->oobfree->length = mtd->oobsize - ecclayout->oobfree->offset; |
| /* check if NAND device's OOB is enough to store ECC signatures */ |
| if (mtd->oobsize < (ecclayout->eccbytes + BADBLOCK_MARKER_LENGTH)) { |
| pr_err("not enough OOB bytes required = %d, available=%d\n", |