You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
From 9e473594776da97245049019f1d1e9608ff1214a Mon Sep 17 00:00:00 2001
|
|
From: Heiner Kallweit <hkallweit1@gmail.com>
|
|
Date: Tue, 17 Nov 2015 20:18:54 +0100
|
|
Subject: [PATCH 084/113] 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 <hkallweit1@gmail.com>
|
|
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
|
|
---
|
|
drivers/mtd/spi-nor/spi-nor.c | 8 ++------
|
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
|
|
|
--- a/drivers/mtd/spi-nor/spi-nor.c
|
|
+++ b/drivers/mtd/spi-nor/spi-nor.c
|
|
@@ -411,17 +411,13 @@ static int spi_nor_erase(struct mtd_info
|
|
|
|
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,
|
|
|