[PATCH 1/2] mtd: nand: fix error handling in nand_prog_page_op() #1

Sascha Hauer s.hauer at pengutronix.de
Fri Feb 5 09:27:24 EST 2021


On success chip->legacy.waitfunc() returns the NAND status byte, but on
failure it returns a negative error code. This was never tested for and
instead the return value was interpreted as NAND status without error
checking. Add the missing error check.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 drivers/mtd/nand/raw/nand_base.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c
index c33fa1b1847f..d2b2a1f70fde 100644
--- a/drivers/mtd/nand/raw/nand_base.c
+++ b/drivers/mtd/nand/raw/nand_base.c
@@ -1466,6 +1466,8 @@ int nand_prog_page_op(struct nand_chip *chip, unsigned int page,
 		chip->legacy.write_buf(chip, buf, len);
 		chip->legacy.cmdfunc(chip, NAND_CMD_PAGEPROG, -1, -1);
 		status = chip->legacy.waitfunc(chip);
+		if (status < 0)
+			return status;
 	}
 
 	if (status & NAND_STATUS_FAIL)
-- 
2.20.1




More information about the linux-mtd mailing list