summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLong Li <longli@microsoft.com>2017-03-12 08:16:23 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-03-12 08:16:23 +0000
commit15c7c846885bb34f9e4fbbaaf86e0e5f5b41779b (patch)
treed93439d1aa7ff767df579df80873043be81b779a /drivers
parent1c933caeb8d0b5e40f7ec8f5a382cff4c699853b (diff)
parent80bccab34a5765060a752a34aa758a89313176ed (diff)
scsi: storvsc: properly handle SRB_ERROR when sense message is present
am: 80bccab34a Change-Id: Ia376c2f0f0a0b1328b60ed5fb707fe5a12ec64ad
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/storvsc_drv.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index 4ccbcadb5713..40eeaa123d4e 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -866,6 +866,13 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
switch (SRB_STATUS(vm_srb->srb_status)) {
case SRB_STATUS_ERROR:
/*
+ * Let upper layer deal with error when
+ * sense message is present.
+ */
+
+ if (vm_srb->srb_status & SRB_STATUS_AUTOSENSE_VALID)
+ break;
+ /*
* If there is an error; offline the device since all
* error recovery strategies would have already been
* deployed on the host side. However, if the command