diff options
author | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2012-02-03 09:23:52 -0500 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2012-03-26 19:28:18 -0400 |
commit | 5def48982b778aaebe201f85af7170b7d0a6619f (patch) | |
tree | 2920f1b524698877fab8521ee04349a5e285e47d /drivers/mtd/onenand | |
parent | 8273a0c911d8e068297ef70aa7241ee78db4c712 (diff) |
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>
Diffstat (limited to 'drivers/mtd/onenand')
-rw-r--r-- | drivers/mtd/onenand/onenand_base.c | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c index 914c49bdf2b6..9c6445d372ce 100644 --- a/drivers/mtd/onenand/onenand_base.c +++ b/drivers/mtd/onenand/onenand_base.c | |||
@@ -1756,13 +1756,6 @@ static int onenand_panic_write(struct mtd_info *mtd, loff_t to, size_t len, | |||
1756 | /* Initialize retlen, in case of early exit */ | 1756 | /* Initialize retlen, in case of early exit */ |
1757 | *retlen = 0; | 1757 | *retlen = 0; |
1758 | 1758 | ||
1759 | /* Do not allow writes past end of device */ | ||
1760 | if (unlikely((to + len) > mtd->size)) { | ||
1761 | printk(KERN_ERR "%s: Attempt write to past end of device\n", | ||
1762 | __func__); | ||
1763 | return -EINVAL; | ||
1764 | } | ||
1765 | |||
1766 | /* Reject writes, which are not page aligned */ | 1759 | /* Reject writes, which are not page aligned */ |
1767 | if (unlikely(NOTALIGNED(to) || NOTALIGNED(len))) { | 1760 | if (unlikely(NOTALIGNED(to) || NOTALIGNED(len))) { |
1768 | printk(KERN_ERR "%s: Attempt to write not page aligned data\n", | 1761 | printk(KERN_ERR "%s: Attempt to write not page aligned data\n", |
@@ -1890,13 +1883,6 @@ static int onenand_write_ops_nolock(struct mtd_info *mtd, loff_t to, | |||
1890 | ops->retlen = 0; | 1883 | ops->retlen = 0; |
1891 | ops->oobretlen = 0; | 1884 | ops->oobretlen = 0; |
1892 | 1885 | ||
1893 | /* Do not allow writes past end of device */ | ||
1894 | if (unlikely((to + len) > mtd->size)) { | ||
1895 | printk(KERN_ERR "%s: Attempt write to past end of device\n", | ||
1896 | __func__); | ||
1897 | return -EINVAL; | ||
1898 | } | ||
1899 | |||
1900 | /* Reject writes, which are not page aligned */ | 1886 | /* Reject writes, which are not page aligned */ |
1901 | if (unlikely(NOTALIGNED(to) || NOTALIGNED(len))) { | 1887 | if (unlikely(NOTALIGNED(to) || NOTALIGNED(len))) { |
1902 | printk(KERN_ERR "%s: Attempt to write not page aligned data\n", | 1888 | printk(KERN_ERR "%s: Attempt to write not page aligned data\n", |
@@ -2493,12 +2479,6 @@ static int onenand_erase(struct mtd_info *mtd, struct erase_info *instr) | |||
2493 | (unsigned long long)instr->addr, | 2479 | (unsigned long long)instr->addr, |
2494 | (unsigned long long)instr->len); | 2480 | (unsigned long long)instr->len); |
2495 | 2481 | ||
2496 | /* Do not allow erase past end of device */ | ||
2497 | if (unlikely((len + addr) > mtd->size)) { | ||
2498 | printk(KERN_ERR "%s: Erase past end of device\n", __func__); | ||
2499 | return -EINVAL; | ||
2500 | } | ||
2501 | |||
2502 | if (FLEXONENAND(this)) { | 2482 | if (FLEXONENAND(this)) { |
2503 | /* Find the eraseregion of this address */ | 2483 | /* Find the eraseregion of this address */ |
2504 | int i = flexonenand_region(mtd, addr); | 2484 | int i = flexonenand_region(mtd, addr); |