diff options
author | Gerd Hoffmann | 2012-11-30 11:54:45 +0100 |
---|---|---|
committer | Greg Kroah-Hartman | 2013-01-11 12:14:18 -0800 |
commit | f8be6bfc5da027952e827a503e747fde5393adcc (patch) | |
tree | d5d26ea0eb3f82b6f25097b8313d9b347796785c /drivers/usb/storage | |
parent | 4c456971f8c90b8179bf5fd5ae2d9b734085c19d (diff) |
uas: fail any request submitted while resetting the device.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/storage')
-rw-r--r-- | drivers/usb/storage/uas.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c index 547f96acad9c..ebb99728551c 100644 --- a/drivers/usb/storage/uas.c +++ b/drivers/usb/storage/uas.c @@ -644,6 +644,12 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd, BUILD_BUG_ON(sizeof(struct uas_cmd_info) > sizeof(struct scsi_pointer)); + if (devinfo->resetting) { + cmnd->result = DID_ERROR << 16; + cmnd->scsi_done(cmnd); + return 0; + } + spin_lock_irqsave(&devinfo->lock, flags); if (devinfo->cmnd) { spin_unlock_irqrestore(&devinfo->lock, flags); |