diff options
| author | Marek BehĂșn <[email protected]> | 2021-10-05 15:55:59 +0200 |
|---|---|---|
| committer | Jagan Teki <[email protected]> | 2021-10-23 15:47:33 +0530 |
| commit | a9d9d412e00e246dbba2076ce3c11b7a5b542a76 (patch) | |
| tree | cd3aa28c934dfbfb0a484b51e0992ef1a4cacefc | |
| parent | 5ea6dccee45ab941cfc78fbbfd9600ef24c5ca60 (diff) | |
mtd: spi-nor-core: Don't overwrite return value if it is non-zero
The cleanup code of the spi_nor_erase() function overwrites the ret
variable with return value of clean_bar(), even if the ret variable is
already set. Fix this.
Signed-off-by: Marek BehĂșn <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Tested-by: Masami Hiramatsu <[email protected]>
| -rw-r--r-- | drivers/mtd/spi/spi-nor-core.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index 6231ec5ce58..d8eed595b71 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -909,7 +909,7 @@ static int spi_nor_erase(struct mtd_info *mtd, struct erase_info *instr) { struct spi_nor *nor = mtd_to_spi_nor(mtd); u32 addr, len, rem; - int ret; + int ret, err; dev_dbg(nor->dev, "at 0x%llx, len %lld\n", (long long)instr->addr, (long long)instr->len); @@ -949,7 +949,9 @@ static int spi_nor_erase(struct mtd_info *mtd, struct erase_info *instr) erase_err: #ifdef CONFIG_SPI_FLASH_BAR - ret = clean_bar(nor); + err = clean_bar(nor); + if (!ret) + ret = err; #endif write_disable(nor); |
