summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2010-10-31 18:55:30 +0200
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-02-06 19:35:26 +0200
commita87f29cbbcbd5bd1e4990367cd18967e9bbeacff (patch)
tree637789d9f982c7b92d4ee0aafcb1a3060e35a628
parentfef2deb31f6523203a3fa1af485a5f1fef19cf6b (diff)
downloadblackbird-op-linux-a87f29cbbcbd5bd1e4990367cd18967e9bbeacff.tar.gz
blackbird-op-linux-a87f29cbbcbd5bd1e4990367cd18967e9bbeacff.zip
UBI: always re-read in case of read failures
When the read operation fails, UBI tries to re-read several times in a hope that one of the subsequent reads may succeed. However, currently UBI re-reads only if MTD failed to read all data, but does not re-reads if all the data were read, but with an integrity error (-EBADMSB). This patch makes UBI to always re-try reading. This should be useful for reading NAND pages with unstable bits - re-reading may help to get correct data. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r--drivers/mtd/ubi/io.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/ubi/io.c b/drivers/mtd/ubi/io.c
index 6f90a6530149..889e25c49323 100644
--- a/drivers/mtd/ubi/io.c
+++ b/drivers/mtd/ubi/io.c
@@ -188,7 +188,7 @@ retry:
return UBI_IO_BITFLIPS;
}
- if (read != len && retries++ < UBI_IO_RETRIES) {
+ if (retries++ < UBI_IO_RETRIES) {
dbg_io("error %d%s while reading %d bytes from PEB %d:%d,"
" read only %zd bytes, retry",
err, errstr, len, pnum, offset, read);
OpenPOWER on IntegriCloud