
From: Marek Behún marek.behun@nic.cz
Check for zero length in the legacy spi_flash_read() / spi_flash_write() / spi_flash_erase() functions. On zero length, return 0 immediately, don't call the underlying method.
Rationale: - these legacy functions call the _read(), _write() and _erase() methods of struct mtd - the DM callers of these methods already check for zero length - making all callers of these methods check for zero length makes it possible to remove the check from implementations of these _read(), _write() and _erase() methods
Signed-off-by: Marek Behún marek.behun@nic.cz --- include/spi_flash.h | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/include/spi_flash.h b/include/spi_flash.h index 3d747c925b..4d4ae89c19 100644 --- a/include/spi_flash.h +++ b/include/spi_flash.h @@ -165,6 +165,9 @@ static inline int spi_flash_read(struct spi_flash *flash, u32 offset, struct mtd_info *mtd = &flash->mtd; size_t retlen;
+ if (!len) + return 0; + return mtd->_read(mtd, offset, len, &retlen, buf); }
@@ -174,6 +177,9 @@ static inline int spi_flash_write(struct spi_flash *flash, u32 offset, struct mtd_info *mtd = &flash->mtd; size_t retlen;
+ if (!len) + return 0; + return mtd->_write(mtd, offset, len, &retlen, buf); }
@@ -188,6 +194,9 @@ static inline int spi_flash_erase(struct spi_flash *flash, u32 offset, return -EINVAL; }
+ if (!len) + return 0; + memset(&instr, 0, sizeof(instr)); instr.addr = offset; instr.len = len;