summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZoltan Sogor2008-10-29 09:50:02 +0100
committerArtem Bityutskiy2008-11-06 10:13:02 +0100
commitb77bcb07897f1a9cd9d1d78691896dcdb0fd1a22 (patch)
tree1bc140b0a6b112b78bce4c0afd17f845e84d8fee
parentLinux v2.6.28-rc3 (diff)
downloadkernel-qcow2-linux-b77bcb07897f1a9cd9d1d78691896dcdb0fd1a22.tar.gz
kernel-qcow2-linux-b77bcb07897f1a9cd9d1d78691896dcdb0fd1a22.tar.xz
kernel-qcow2-linux-b77bcb07897f1a9cd9d1d78691896dcdb0fd1a22.zip
UBI: fix EBADMSG handling
'ubi_io_read_data()' may return EBADMSG in case of an ECC error, and we should not panic because of this. We have CRC32 checksum and may check the data. So just ignore the EBADMSG error. This patch also fixes a minor spelling error at the same time. Signed-off-by: Zoltan Sogor <weth@inf.u-szeged.hu> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r--drivers/mtd/ubi/eba.c2
-rw-r--r--drivers/mtd/ubi/scan.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
index e04bcf1dff87..d8966bae0e0b 100644
--- a/drivers/mtd/ubi/eba.c
+++ b/drivers/mtd/ubi/eba.c
@@ -1022,7 +1022,7 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to,
}
/*
- * OK, now the LEB is locked and we can safely start moving iy. Since
+ * OK, now the LEB is locked and we can safely start moving it. Since
* this function utilizes thie @ubi->peb1_buf buffer which is shared
* with some other functions, so lock the buffer by taking the
* @ubi->buf_mutex.
diff --git a/drivers/mtd/ubi/scan.c b/drivers/mtd/ubi/scan.c
index 4f2daa5bbecf..41d47e1cf15c 100644
--- a/drivers/mtd/ubi/scan.c
+++ b/drivers/mtd/ubi/scan.c
@@ -320,7 +320,7 @@ static int compare_lebs(struct ubi_device *ubi, const struct ubi_scan_leb *seb,
}
err = ubi_io_read_data(ubi, buf, pnum, 0, len);
- if (err && err != UBI_IO_BITFLIPS)
+ if (err && err != UBI_IO_BITFLIPS && err != -EBADMSG)
goto out_free_buf;
data_crc = be32_to_cpu(vid_hdr->data_crc);