linux-pinenote/drivers/mtd
Brian Norris 041e4575f0 mtd: nand: handle ECC errors in OOB
While the standard NAND OOB functions do not do ECC on the spare area,
it is possible for a driver to supply its own OOB ECC functions (e.g., HW
ECC). nand_do_read_oob should act like nand_do_read_ops in checking the
ECC stats and returning -EBADMSG or -EUCLEAN on uncorrectable errors or
correctable bitflips, respectively. These error codes could be used in
flash-based BBT code or in YAFFS, for example.

Doing this, however, messes with the behavior of mtd_do_readoob. Now,
mtd_do_readoob should check whether we had -EUCLEAN or -EBADMSG errors
and discard those as "non-fatal" so that the ioctls can still succeed
with (possibly uncorrected) data.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2011-09-11 15:02:14 +03:00
..
chips mtd: spelling, capitalization, uniformity 2011-09-11 15:02:13 +03:00
devices mtd: spelling, capitalization, uniformity 2011-09-11 15:02:13 +03:00
lpddr mtd: remove duplicate assignment of chip->state 2011-05-25 02:11:13 +01:00
maps mtd: maps: drop edb7312 support 2011-09-11 15:02:13 +03:00
nand mtd: nand: handle ECC errors in OOB 2011-09-11 15:02:14 +03:00
onenand mtd: spelling, capitalization, uniformity 2011-09-11 15:02:13 +03:00
tests mtd: speedtest: fix integer overflow 2011-03-11 14:22:49 +00:00
ubi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 2011-07-22 19:02:39 -07:00
afs.c mtd: abstract last MTD partition parser argument 2011-09-11 15:02:10 +03:00
ar7part.c mtd: abstract last MTD partition parser argument 2011-09-11 15:02:10 +03:00
cmdlinepart.c mtd: abstract last MTD partition parser argument 2011-09-11 15:02:10 +03:00
ftl.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
inftlcore.c mtd: remove printk's for [kv][mz]alloc failures 2011-09-11 15:02:05 +03:00
inftlmount.c mtd: Remove obsolete <mtd/compatmac.h> include 2010-08-08 21:19:42 +01:00
Kconfig mtd: make ofpart buildable as a separate module 2011-09-11 15:02:13 +03:00
Makefile mtd: make ofpart buildable as a separate module 2011-09-11 15:02:13 +03:00
mtd_blkdevs.c mtd: mtd_blkdevs: fix error path in blktrans_open 2011-05-25 01:53:45 +01:00
mtdblock.c mtd: mtdblock: Use DEFINE_MUTEX() for mtdblks_lock 2011-09-11 15:01:59 +03:00
mtdblock_ro.c mtd: Update copyright notices 2010-08-08 20:58:20 +01:00
mtdchar.c mtd: nand: handle ECC errors in OOB 2011-09-11 15:02:14 +03:00
mtdconcat.c mtd: mtdconcat: fix NAND OOB write 2011-05-25 01:54:50 +01:00
mtdcore.c mtd: drop mtd_device_register 2011-09-11 15:02:13 +03:00
mtdcore.h mtd: hide parse_mtd_partitions 2011-09-11 15:02:13 +03:00
mtdoops.c Merge git://git.infradead.org/mtd-2.6 2011-01-17 11:15:30 -08:00
mtdpart.c mtd: remove put_partition_parser() from public header 2011-09-11 15:02:13 +03:00
mtdsuper.c convert get_sb_mtd() users to ->mount() 2010-10-29 04:16:26 -04:00
mtdswap.c mtd: convert vmalloc/memset to vzalloc 2011-08-15 13:26:37 +03:00
nftlcore.c mtd: remove printk's for [kv][mz]alloc failures 2011-09-11 15:02:05 +03:00
nftlmount.c mtd: Update copyright notices 2010-08-08 20:58:20 +01:00
ofpart.c mtd: make ofpart buildable as a separate module 2011-09-11 15:02:13 +03:00
redboot.c mtd: abstract last MTD partition parser argument 2011-09-11 15:02:10 +03:00
rfd_ftl.c mtd: Update copyright notices 2010-08-08 20:58:20 +01:00
sm_ftl.c mtd: spelling, capitalization, uniformity 2011-09-11 15:02:13 +03:00
sm_ftl.h mtd: sm_ftl: cosmetic, use bool when possible 2010-10-25 01:33:08 +01:00
ssfdc.c mtd: remove printk's for [kv][mz]alloc failures 2011-09-11 15:02:05 +03:00