diff mbox series

[v2,03/18] sf: Guard against zero erasesize

Message ID 20230418153101.115816-4-sjg@chromium.org
State Superseded
Delegated to: Bin Meng
Headers show
Series x86: Various fixes for chromebooks | expand

Commit Message

Simon Glass April 18, 2023, 3:30 p.m. UTC
With tiny SPI flash the erasesize is 0 which can cause a divide-by-zero
error. Check for this and returns a proper error instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

(no changes since v1)

 drivers/mtd/spi/sf_probe.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Bin Meng May 4, 2023, 2:21 p.m. UTC | #1
On Tue, Apr 18, 2023 at 11:31 PM Simon Glass <sjg@chromium.org> wrote:
>
> With tiny SPI flash the erasesize is 0 which can cause a divide-by-zero
> error. Check for this and returns a proper error instead.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> (no changes since v1)
>
>  drivers/mtd/spi/sf_probe.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
diff mbox series

Patch

diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
index e192f97efdc4..de6516f1065b 100644
--- a/drivers/mtd/spi/sf_probe.c
+++ b/drivers/mtd/spi/sf_probe.c
@@ -189,7 +189,8 @@  static int spi_flash_std_erase(struct udevice *dev, u32 offset, size_t len)
 	struct mtd_info *mtd = &flash->mtd;
 	struct erase_info instr;
 
-	if (offset % mtd->erasesize || len % mtd->erasesize) {
+	if (!mtd->erasesize ||
+	    (offset % mtd->erasesize || len % mtd->erasesize)) {
 		debug("SF: Erase offset/length not multiple of erase size\n");
 		return -EINVAL;
 	}