浏览代码

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>
Artem Bityutskiy 14 年之前
父节点
当前提交
beda1d4994
共有 1 个文件被更改,包括 1 次插入8 次删除
  1. 1 8
      drivers/mtd/nand/nand_base.c

+ 1 - 8
drivers/mtd/nand/nand_base.c

@@ -1782,13 +1782,6 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
 	else
 	else
 		len = mtd->oobsize;
 		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)) {
 	if (unlikely(ops->ooboffs >= len)) {
 		DEBUG(MTD_DEBUG_LEVEL0, "%s: Attempt to start read "
 		DEBUG(MTD_DEBUG_LEVEL0, "%s: Attempt to start read "
 					"outside oob\n", __func__);
 					"outside oob\n", __func__);
@@ -2384,7 +2377,7 @@ static int nand_do_write_oob(struct mtd_info *mtd, loff_t to,
 		return -EINVAL;
 		return -EINVAL;
 	}
 	}
 
 
-	/* Do not allow write past end of device */
+	/* Do not allow reads past end of device */
 	if (unlikely(to >= mtd->size ||
 	if (unlikely(to >= mtd->size ||
 		     ops->ooboffs + ops->ooblen >
 		     ops->ooboffs + ops->ooblen >
 			((mtd->size >> chip->page_shift) -
 			((mtd->size >> chip->page_shift) -