diff options
author | Miquel Raynal <miquel.raynal@bootlin.com> | 2021-06-10 15:49:04 +0200 |
---|---|---|
committer | Miquel Raynal <miquel.raynal@bootlin.com> | 2021-06-18 09:45:21 +0200 |
commit | 11a017782852ad6a59d7a449b69478ddc1d30cf0 (patch) | |
tree | dc8eb29538987fb390acf8adb28a99c1ece3678e /drivers/mtd/nand/raw | |
parent | e29973843d9293a57c5c8f14094d0fa74b770ed7 (diff) |
mtd: rawnand: omap: Check return values
Check the return value of many helpers which might return error codes.
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20210610134906.3503303-4-miquel.raynal@bootlin.com
Diffstat (limited to 'drivers/mtd/nand/raw')
-rw-r--r-- | drivers/mtd/nand/raw/omap2.c | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/drivers/mtd/nand/raw/omap2.c b/drivers/mtd/nand/raw/omap2.c index 659ca8ab490e..bb28f2b0ecef 100644 --- a/drivers/mtd/nand/raw/omap2.c +++ b/drivers/mtd/nand/raw/omap2.c @@ -1528,7 +1528,9 @@ static int omap_write_page_bch(struct nand_chip *chip, const uint8_t *buf, int ret; uint8_t *ecc_calc = chip->ecc.calc_buf; - nand_prog_page_begin_op(chip, page, 0, NULL, 0); + ret = nand_prog_page_begin_op(chip, page, 0, NULL, 0); + if (ret) + return ret; /* Enable GPMC ecc engine */ chip->ecc.hwctl(chip, NAND_ECC_WRITE); @@ -1537,7 +1539,9 @@ static int omap_write_page_bch(struct nand_chip *chip, const uint8_t *buf, chip->legacy.write_buf(chip, buf, mtd->writesize); /* Update ecc vector from GPMC result registers */ - omap_calculate_ecc_bch_multi(mtd, buf, &ecc_calc[0]); + ret = omap_calculate_ecc_bch_multi(mtd, buf, &ecc_calc[0]); + if (ret) + return ret; ret = mtd_ooblayout_set_eccbytes(mtd, ecc_calc, chip->oob_poi, 0, chip->ecc.total); @@ -1580,7 +1584,9 @@ static int omap_write_subpage_bch(struct nand_chip *chip, u32 offset, * ECC is calculated for all subpages but we choose * only what we want. */ - nand_prog_page_begin_op(chip, page, 0, NULL, 0); + ret = nand_prog_page_begin_op(chip, page, 0, NULL, 0); + if (ret) + return ret; /* Enable GPMC ECC engine */ chip->ecc.hwctl(chip, NAND_ECC_WRITE); @@ -1639,7 +1645,9 @@ static int omap_read_page_bch(struct nand_chip *chip, uint8_t *buf, int stat, ret; unsigned int max_bitflips = 0; - nand_read_page_op(chip, page, 0, NULL, 0); + ret = nand_read_page_op(chip, page, 0, NULL, 0); + if (ret) + return ret; /* Enable GPMC ecc engine */ chip->ecc.hwctl(chip, NAND_ECC_READ); @@ -1648,13 +1656,17 @@ static int omap_read_page_bch(struct nand_chip *chip, uint8_t *buf, chip->legacy.read_buf(chip, buf, mtd->writesize); /* Read oob bytes */ - nand_change_read_column_op(chip, - mtd->writesize + BBM_LEN, - chip->oob_poi + BBM_LEN, - chip->ecc.total, false); + ret = nand_change_read_column_op(chip, + mtd->writesize + BBM_LEN, + chip->oob_poi + BBM_LEN, + chip->ecc.total, false); + if (ret) + return ret; /* Calculate ecc bytes */ - omap_calculate_ecc_bch_multi(mtd, buf, ecc_calc); + ret = omap_calculate_ecc_bch_multi(mtd, buf, ecc_calc); + if (ret) + return ret; ret = mtd_ooblayout_get_eccbytes(mtd, ecc_code, chip->oob_poi, 0, chip->ecc.total); |