diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2021-02-05 17:27:24 +0300 |
---|---|---|
committer | Miquel Raynal <miquel.raynal@bootlin.com> | 2021-03-11 11:37:29 +0300 |
commit | ec9e0203a3598d979d6151703e673c8cb186304d (patch) | |
tree | 8f2a9e1ceb341da2c069616cb24cb14a1fd8d7dd /drivers/mtd/nand/raw/nand_base.c | |
parent | 0646493edd02e4c872b37258e4e248eb9df4f25b (diff) | |
download | linux-ec9e0203a3598d979d6151703e673c8cb186304d.tar.xz |
mtd: nand: fix error handling in nand_prog_page_op() #1
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@pengutronix.de>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20210205142725.13225-1-s.hauer@pengutronix.de
Diffstat (limited to 'drivers/mtd/nand/raw/nand_base.c')
-rw-r--r-- | drivers/mtd/nand/raw/nand_base.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c index 4e1bd1e5d474..878492fbb52a 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) |