diff options
Diffstat (limited to 'drivers/usb/storage/usb.c')
-rw-r--r-- | drivers/usb/storage/usb.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c index cb4c770baf32..f9a9bfa1aef5 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c | |||
@@ -392,11 +392,16 @@ SkipForAbort: | |||
392 | /* If an abort request was received we need to signal that | 392 | /* If an abort request was received we need to signal that |
393 | * the abort has finished. The proper test for this is | 393 | * the abort has finished. The proper test for this is |
394 | * the TIMED_OUT flag, not srb->result == DID_ABORT, because | 394 | * the TIMED_OUT flag, not srb->result == DID_ABORT, because |
395 | * a timeout/abort request might be received after all the | 395 | * the timeout might have occurred after the command had |
396 | * USB processing was complete. */ | 396 | * already completed with a different result code. */ |
397 | if (test_bit(US_FLIDX_TIMED_OUT, &us->flags)) | 397 | if (test_bit(US_FLIDX_TIMED_OUT, &us->flags)) { |
398 | complete(&(us->notify)); | 398 | complete(&(us->notify)); |
399 | 399 | ||
400 | /* Allow USB transfers to resume */ | ||
401 | clear_bit(US_FLIDX_ABORTING, &us->flags); | ||
402 | clear_bit(US_FLIDX_TIMED_OUT, &us->flags); | ||
403 | } | ||
404 | |||
400 | /* finished working on this command */ | 405 | /* finished working on this command */ |
401 | us->srb = NULL; | 406 | us->srb = NULL; |
402 | scsi_unlock(host); | 407 | scsi_unlock(host); |