linux/drivers/mtd/ubi
Artem Bityutskiy 2362a53ec5 UBI: fix error code in ubi_io_read()
When NAND detects an ECC error, it returns -EBADMSG. It does not
stop reading requested data if one page has an ECC error, it keeps
going and reads all the requested data. If it fails to read all
the data, it does not return -EBADMSG, but returns the error code
which reflects the reason of the failure.

But some drivers may have bugs (e.g., OneNAND had) and stop reading
after the first ECC error, so it returns -EBADMSG. In turn, UBI
propagates this up to the caller. The caller will treat this as
"all the requested data was read, but there was an ECC error".

So we change the error code to -EIO if it is -EBADMSG and the read
length is less then the requested length. We also add an assertion,
so if UBI debugging is enabled, UBI will bug.

Pointed-to-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
2007-12-26 19:15:13 +02:00
..
build.c UBI: do not use vmalloc on I/O path 2007-10-14 13:10:21 +03:00
cdev.c UBI: fix compile warning 2007-07-18 16:59:17 +03:00
debug.c UBI: use byte hexdump 2007-10-14 13:10:21 +03:00
debug.h UBI: use linux print_hex_dump(), not home-grown one 2007-10-14 13:10:20 +03:00
eba.c Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
gluebi.c UBI: set correct gluebi device size 2007-07-18 16:52:51 +03:00
io.c UBI: fix error code in ubi_io_read() 2007-12-26 19:15:13 +02:00
kapi.c UBI: don't use array index before testing if it is negative 2007-10-14 13:10:20 +03:00
Kconfig UBI: Unsorted Block Images 2007-04-27 14:23:33 +03:00
Kconfig.debug UBI: Unsorted Block Images 2007-04-27 14:23:33 +03:00
Makefile UBI: Unsorted Block Images 2007-04-27 14:23:33 +03:00
misc.c UBI: use vmalloc for large buffers 2007-07-18 16:53:08 +03:00
scan.c Merge branch 'master' of git://git.infradead.org/~dedekind/ubi-2.6 2007-10-14 14:29:00 +01:00
scan.h UBI: do not use vmalloc on I/O path 2007-10-14 13:10:21 +03:00
ubi.h UBI: fix atomic LEB change problems 2007-10-14 13:10:21 +03:00
upd.c UBI: use vmalloc for large buffers 2007-07-18 16:53:08 +03:00
vmt.c UBI: fix sparse warnings 2007-10-14 13:10:20 +03:00
vtbl.c UBI: do not use vmalloc on I/O path 2007-10-14 13:10:21 +03:00
wl.c Use helpers to obtain task pid in printks 2007-10-19 11:53:43 -07:00