Commit ec9e0203 authored by Sascha Hauer's avatar Sascha Hauer Committed by Miquel Raynal
Browse files

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: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20210205142725.13225-1-s.hauer@pengutronix.de
parent 0646493e
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -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.write_buf(chip, buf, len);
		chip->legacy.cmdfunc(chip, NAND_CMD_PAGEPROG, -1, -1);
		chip->legacy.cmdfunc(chip, NAND_CMD_PAGEPROG, -1, -1);
		status = chip->legacy.waitfunc(chip);
		status = chip->legacy.waitfunc(chip);
		if (status < 0)
			return status;
	}
	}


	if (status & NAND_STATUS_FAIL)
	if (status & NAND_STATUS_FAIL)