mtd: do not duplicate length and offset checks in drivers
We already verify that offset and length are within the MTD device size in the MTD API functions. Let's remove the duplicated checks in drivers. This patch only affects the following API's: 'mtd_erase()' 'mtd_point()' 'mtd_unpoint()' 'mtd_get_unmapped_area()' 'mtd_read()' 'mtd_write()' 'mtd_panic_write()' 'mtd_lock()' 'mtd_unlock()' 'mtd_is_locked()' 'mtd_block_isbad()' 'mtd_block_markbad()' This patch adds a bit of noise by removing too sparse empty lines, but this is not too bad. Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
此提交包含在:
@@ -1324,7 +1324,7 @@ static int cfi_intelext_point(struct mtd_info *mtd, loff_t from, size_t len,
|
||||
int chipnum;
|
||||
int ret = 0;
|
||||
|
||||
if (!map->virt || (from + len > mtd->size))
|
||||
if (!map->virt)
|
||||
return -EINVAL;
|
||||
|
||||
/* Now lock the chip(s) to POINT state */
|
||||
|
@@ -904,12 +904,6 @@ static int cfi_staa_erase_varsize(struct mtd_info *mtd,
|
||||
int i, first;
|
||||
struct mtd_erase_region_info *regions = mtd->eraseregions;
|
||||
|
||||
if (instr->addr > mtd->size)
|
||||
return -EINVAL;
|
||||
|
||||
if ((instr->len + instr->addr) > mtd->size)
|
||||
return -EINVAL;
|
||||
|
||||
/* Check that both start and end of the requested erase are
|
||||
* aligned with the erasesize at the appropriate addresses.
|
||||
*/
|
||||
@@ -1155,9 +1149,6 @@ static int cfi_staa_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
|
||||
if (len & (mtd->erasesize -1))
|
||||
return -EINVAL;
|
||||
|
||||
if ((len + ofs) > mtd->size)
|
||||
return -EINVAL;
|
||||
|
||||
chipnum = ofs >> cfi->chipshift;
|
||||
adr = ofs - (chipnum << cfi->chipshift);
|
||||
|
||||
|
@@ -173,12 +173,6 @@ int cfi_varsize_frob(struct mtd_info *mtd, varsize_frob_t frob,
|
||||
int i, first;
|
||||
struct mtd_erase_region_info *regions = mtd->eraseregions;
|
||||
|
||||
if (ofs > mtd->size)
|
||||
return -EINVAL;
|
||||
|
||||
if ((len + ofs) > mtd->size)
|
||||
return -EINVAL;
|
||||
|
||||
/* Check that both start and end of the requested erase are
|
||||
* aligned with the erasesize at the appropriate addresses.
|
||||
*/
|
||||
|
新增問題並參考
封鎖使用者