linux-uconsole/drivers/mtd
pekon gupta 9bdc502feb mtd: nand: omap: fix BCHx ecc.correct to return detected bit-flips in erased-page
commit f306e8c3b6 upstream.

fixes: commit 62116e5171
       mtd: nand: omap2: Support for hardware BCH error correction.

In omap_elm_correct_data(), if bitflip_count in an erased-page is within the
correctable limit (< ecc.strength), then it is not indicated back to the caller
ecc->read_page().

This mis-guides upper layers like MTD and UBIFS layer to assume erased-page as
perfectly clean and use it for writing even if actual bitflip_count was
dangerously high (bitflip_count > mtd->bitflip_threshold).

This patch fixes this above issue, by returning 'stats' to caller
ecc->read_page() under all scenarios.

Reported-by: Brian Norris <computersforpeace@gmail.com>
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>
2014-07-09 11:14:00 -07:00
..
chips - Lots of cleanups from Artem, including deletion of some obsolete drivers 2013-05-09 10:15:46 -07:00
devices mtd: dataflash: Use of_match_ptr() macro 2013-04-05 13:19:51 +01:00
lpddr mtd: lpddr: replace open-coded ARRAY_SIZE with macro 2012-05-13 22:47:31 -05:00
maps - Lots of cleanups from Artem, including deletion of some obsolete drivers 2013-05-09 10:15:46 -07:00
nand mtd: nand: omap: fix BCHx ecc.correct to return detected bit-flips in erased-page 2014-07-09 11:14:00 -07:00
onenand - Lots of cleanups from Artem, including deletion of some obsolete drivers 2013-05-09 10:15:46 -07:00
tests Fairly unexciting MTD merge for 3.9: 2013-03-02 16:33:54 -08:00
ubi UBI: Fix PEB leak in wear_leveling_worker() 2013-09-26 17:18:01 -07:00
afs.c mtd: introduce mtd_read interface 2012-01-09 18:25:19 +00:00
ar7part.c mtd: Allow removal of partitioning modules 2013-02-04 09:27:33 +02:00
bcm47xxpart.c mtd: bcm47xxpart: look for NVRAM at the end of device 2013-03-08 11:36:00 +00:00
bcm63xxpart.c mtd: bcm63xxpart: use correct printk format for partitions 2012-11-21 17:15:06 +02:00
cmdlinepart.c mtd: Allow removal of partitioning modules 2013-02-04 09:27:33 +02:00
ftl.c mtd: do not use mtd->sync directly 2012-01-09 18:26:21 +00:00
inftlcore.c mtd: add leading underscore to all mtd functions 2012-03-27 00:20:01 +01:00
inftlmount.c mtd: introduce mtd_block_markbad interface 2012-01-09 18:25:48 +00:00
Kconfig mtd: merge mtdchar module with mtdcore 2013-04-05 13:16:54 +01:00
Makefile mtd: merge mtdchar module with mtdcore 2013-04-05 13:16:54 +01:00
mtd_blkdevs.c block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00
mtdblock.c mtd_blktrans_ops->release() should return void 2013-05-05 21:31:22 -04:00
mtdblock_ro.c mtd: introduce mtd_write interface 2012-01-09 18:25:20 +00:00
mtdchar.c - Lots of cleanups from Artem, including deletion of some obsolete drivers 2013-05-09 10:15:46 -07:00
mtdconcat.c mtd: unify initialization of erase_info->fail_addr 2012-03-27 01:02:24 +01:00
mtdcore.c - Lots of cleanups from Artem, including deletion of some obsolete drivers 2013-05-09 10:15:46 -07:00
mtdcore.h mtd: merge mtdchar module with mtdcore 2013-04-05 13:16:54 +01:00
mtdoops.c mtdoops: don't erase flash at each boot 2012-11-15 15:37:51 +02:00
mtdpart.c mtd: mtdcore: use const qualifier 2013-04-05 13:04:27 +01:00
mtdsuper.c VFS: Pass mount flags to sget() 2012-07-14 16:38:34 +04:00
mtdswap.c mtd: do not use mtd->block_markbad directly 2012-01-09 18:26:26 +00:00
nftlcore.c mtd: nftlcore: remove out-of-date and now irrelevant piece of code 2012-03-27 00:24:03 +01:00
nftlmount.c mtd: introduce mtd_block_markbad interface 2012-01-09 18:25:48 +00:00
ofpart.c mtd: ofpart: support partitions of 4 GiB and larger 2013-04-05 12:05:53 +01:00
redboot.c mtd: redboot: remove useless code 2012-03-27 00:24:14 +01:00
rfd_ftl.c mtd: do not use mtd->sync directly 2012-01-09 18:26:21 +00:00
sm_ftl.c mtd: sm_ftl: heap corruption in sm_create_sysfs_attributes() 2014-05-13 13:59:45 +02:00
sm_ftl.h
ssfdc.c mtd: introduce mtd_block_isbad interface 2012-01-09 18:25:47 +00:00