]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mtd: spi-flash: Check for zero length in legacy spi_flash_*()
authorMarek Behún <marek.behun@nic.cz>
Tue, 5 Oct 2021 13:56:01 +0000 (15:56 +0200)
committerJagan Teki <jagan@amarulasolutions.com>
Sat, 23 Oct 2021 10:17:33 +0000 (15:47 +0530)
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

index 3d747c925b9e60c40875f9eb59645fe6a4f273c7..4d4ae89c192111914045444990ae9e81f2f8a509 100644 (file)
@@ -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;