Commit d27c9859 authored by Alex Dewar's avatar Alex Dewar Committed by Miquel Raynal
Browse files

mtd: rawnand: atmel: Check return values for nand_read_data_op



In atmel_nand_pmecc_read_pg(), nand_read_data_op() is called twice
without the return values being checked for errors. Add these checks.

Signed-off-by: default avatarAlex Dewar <alex.dewar90@gmail.com>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20200914214245.14626-1-alex.dewar90@gmail.com
parent f7721e4b
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -948,11 +948,17 @@ static int atmel_nand_pmecc_read_pg(struct nand_chip *chip, u8 *buf,
	if (ret)
		return ret;

	nand_read_data_op(chip, buf, mtd->writesize, false, false);
	nand_read_data_op(chip, chip->oob_poi, mtd->oobsize, false, false);
	ret = nand_read_data_op(chip, buf, mtd->writesize, false, false);
	if (ret)
		goto out_disable;

	ret = nand_read_data_op(chip, chip->oob_poi, mtd->oobsize, false, false);
	if (ret)
		goto out_disable;

	ret = atmel_nand_pmecc_correct_data(chip, buf, raw);

out_disable:
	atmel_nand_pmecc_disable(chip, raw);

	return ret;