summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Bityutskiy2010-12-14 16:07:57 +0100
committerDavid Woodhouse2011-01-06 16:13:25 +0100
commitbeda1d49941765c0765e0f3cb95b4a86de67745d (patch)
tree285df96da600a384a86ca30a642d64bc52afe668
parentmtd: nand: Fix integer overflow in ONFI detection of chips >= 4GiB (diff)
downloadkernel-qcow2-linux-beda1d49941765c0765e0f3cb95b4a86de67745d.tar.gz
kernel-qcow2-linux-beda1d49941765c0765e0f3cb95b4a86de67745d.tar.xz
kernel-qcow2-linux-beda1d49941765c0765e0f3cb95b4a86de67745d.zip
Revert "mtd: nand: add check for out of page read"
This reverts commit e14feafbe0d5c6d64bb6fe4eba928cb57ac9a4c8. The commit limits the maximum amount of bytes which can be read at one go to the OOB size, which is incorrect, because mtd->read_oob() allows reading multiple pages at a time, see comment near "struct mtd_oob_ops" at include/linux/mtd/mtd.h. So this patch breaks ABI and hence, has to be reverted. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-rw-r--r--drivers/mtd/nand/nand_base.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 33550c43acc2..9c8da741dce0 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -1782,13 +1782,6 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
else
len = mtd->oobsize;
- /* Do not allow read past end of page */
- if ((ops->ooboffs + readlen) > len) {
- DEBUG(MTD_DEBUG_LEVEL0, "%s: Attempt to read "
- "past end of page\n", __func__);
- return -EINVAL;
- }
-
if (unlikely(ops->ooboffs >= len)) {
DEBUG(MTD_DEBUG_LEVEL0, "%s: Attempt to start read "
"outside oob\n", __func__);
@@ -2384,7 +2377,7 @@ static int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
return -EINVAL;
}
- /* Do not allow write past end of device */
+ /* Do not allow reads past end of device */
if (unlikely(to >= mtd->size ||
ops->ooboffs + ops->ooblen >
((mtd->size >> chip->page_shift) -