|
@@ -1236,10 +1236,14 @@ static int inval_cache_and_wait_for_operation(
|
|
|
remove_wait_queue(&chip->wq, &wait);
|
|
|
spin_lock(chip->mutex);
|
|
|
}
|
|
|
- if (chip->erase_suspended || chip->write_suspended) {
|
|
|
- /* Suspend has occured while sleep: reset timeout */
|
|
|
+ if (chip->erase_suspended && chip_state == FL_ERASING) {
|
|
|
+ /* Erase suspend occured while sleep: reset timeout */
|
|
|
timeo = reset_timeo;
|
|
|
chip->erase_suspended = 0;
|
|
|
+ }
|
|
|
+ if (chip->write_suspended && chip_state == FL_WRITING) {
|
|
|
+ /* Write suspend occured while sleep: reset timeout */
|
|
|
+ timeo = reset_timeo;
|
|
|
chip->write_suspended = 0;
|
|
|
}
|
|
|
}
|