mtd: nand: omap: fix ecclayout->oobfree->offset
authorPekon Gupta <pekon@ti.com>
Mon, 17 Feb 2014 07:41:24 +0000 (13:11 +0530)
committerBrian Norris <computersforpeace@gmail.com>
Sun, 23 Feb 2014 22:49:57 +0000 (14:49 -0800)
commitaa6092f9835893290e77c3e24649def49dac1583
treeec1e53b24298e5e237f608bc8e6fc52c1f4a45b9
parenteae39cb4934d3daab3ec828c5201c955b2e56af9
mtd: nand: omap: fix ecclayout->oobfree->offset

1) In current implementation, ecclayout->oobfree->offset is calculated with
 respect to ecclayout->eccpos[0] which is incorrect because ECC bytes may not
 be stored contiguously in OOB.
 So, this patch calculates ecclayout->oobfree->offset with respect to last
 ECC byte-position 'eccpos[ecclayout->eccbytes-1]'.

2) ECC layout of some ecc-schemes expects reserved-markers at specific eccpos[]
 which should not be over-written by any file-system metadata.
 So this patch aligns oobfree->offset taking into account of such markers.

CC: <stable@vger.kernel.org> # 3.13.x+
Tested-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Tested-by: Stefan Roese <sr@denx.de>
Signed-off-by: Pekon Gupta <pekon@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/omap2.c