|
@@ -349,11 +349,14 @@ enum storvsc_request_type {
|
|
|
*/
|
|
|
|
|
|
#define SRB_STATUS_AUTOSENSE_VALID 0x80
|
|
|
+#define SRB_STATUS_QUEUE_FROZEN 0x40
|
|
|
#define SRB_STATUS_INVALID_LUN 0x20
|
|
|
#define SRB_STATUS_SUCCESS 0x01
|
|
|
#define SRB_STATUS_ABORTED 0x02
|
|
|
#define SRB_STATUS_ERROR 0x04
|
|
|
|
|
|
+#define SRB_STATUS(status) \
|
|
|
+ (status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN))
|
|
|
/*
|
|
|
* This is the end of Protocol specific defines.
|
|
|
*/
|
|
@@ -858,7 +861,7 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
|
|
|
void (*process_err_fn)(struct work_struct *work);
|
|
|
bool do_work = false;
|
|
|
|
|
|
- switch (vm_srb->srb_status) {
|
|
|
+ switch (SRB_STATUS(vm_srb->srb_status)) {
|
|
|
case SRB_STATUS_ERROR:
|
|
|
/*
|
|
|
* If there is an error; offline the device since all
|