Message ID | 20210714235109.25228-4-marek.behun@nic.cz |
---|---|
State | Superseded |
Delegated to: | Jagannadha Sutradharudu Teki |
Headers | show |
Series | Fix `mtd erase` when used with mtdpart | expand |
On Wed, 14 Jul 2021 at 17:51, Marek Behún <marek.behun@nic.cz> wrote: > > 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 <marek.behun@nic.cz> > Tested-by: Masami Hiramatsu <masami.hiramatsu@linaro.org> > --- > drivers/mtd/spi/spi-nor-core.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) Reviewed-by: Simon Glass <sjg@chromium.org>
diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index 8fd1d684f2..48c82b94aa 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -907,7 +907,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); @@ -947,7 +947,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);