|
@@ -180,8 +180,10 @@ static int sst25l_erase(struct mtd_info *mtd, struct erase_info *instr)
|
|
mutex_lock(&flash->lock);
|
|
mutex_lock(&flash->lock);
|
|
|
|
|
|
err = sst25l_wait_till_ready(flash);
|
|
err = sst25l_wait_till_ready(flash);
|
|
- if (err)
|
|
|
|
|
|
+ if (err) {
|
|
|
|
+ mutex_unlock(&flash->lock);
|
|
return err;
|
|
return err;
|
|
|
|
+ }
|
|
|
|
|
|
while (addr < end) {
|
|
while (addr < end) {
|
|
err = sst25l_erase_sector(flash, addr);
|
|
err = sst25l_erase_sector(flash, addr);
|