mtd: spi-nor: fix error handling in spi_nor_erase
Subsystems (2)
PATCH 3/3 mtd: spi-nor: fix error handling in spi_nor_erase
The documenting comment of mtd_erase in mtdcore.c states:
Device drivers are supposed to call instr->callback() whenever the operation completes, even if it completes with a failure.
Currently the callback isn't called in case of failure. Fix this.
Signed-off-by Heiner Kallweit <[email protected]>
--- drivers/mtd/spi-nor/spi-nor.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)
drivers/mtd/spi-nor/spi-nor.c +2 -6
@@ -387,17 +387,13 @@ static int spi_nor_erase(struct mtd_info *mtd, struct erase_info *instr)write_disable (nor); +erase_err:spi_nor_unlock_and_unprep (nor,SPI_NOR_OPS_ERASE ); - instr->state =MTD_ERASE_DONE ; + instr->state = ret ?MTD_ERASE_FAILED :MTD_ERASE_DONE ;mtd_erase_callback (instr);return ret; - -erase_err: -spi_nor_unlock_and_unprep (nor,SPI_NOR_OPS_ERASE ); - instr->state =MTD_ERASE_FAILED ; -return ret; } static void stm_get_locked_range(struct spi_nor *nor, u8 sr, loff_t *ofs,
Signature · 1 line
2.6.2
Brian Norris
AppliedQuoted 7 lines · Heiner Kallweit
The documenting comment of
mtd_eraseinmtdcore.cstates:
Device drivers are supposed to callinstr->callback()whenever the operation completes, even if it completes with a failure.Currently the callback isn't called in case of failure. Fix this.
Signed-off-by Heiner Kallweit <[email protected]>
Applied patch 3 to l2-mtd.git. Thanks!