diff mbox

scsi: storvsc: fix SRB_STATUS_ABORTED handling

Message ID 1457348384-11869-1-git-send-email-vkuznets@redhat.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Vitaly Kuznetsov March 7, 2016, 10:59 a.m. UTC
Commit 3209f9d780d1 ("scsi: storvsc: Fix a bug in the handling of SRB
status flags") filtered SRB_STATUS_AUTOSENSE_VALID out effectively making
the (SRB_STATUS_ABORTED | SRB_STATUS_AUTOSENSE_VALID) case a dead code. The
logic from this branch (e.g. storvsc_device_scan() call) is still required,
fix the check.

Fixes: 3209f9d780d1 ("scsi: storvsc: Fix a bug in the handling of SRB status flags")
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
 drivers/scsi/storvsc_drv.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

KY Srinivasan March 8, 2016, 1:16 a.m. UTC | #1
> -----Original Message-----
> From: Vitaly Kuznetsov [mailto:vkuznets@redhat.com]
> Sent: Monday, March 7, 2016 3:00 AM
> To: linux-scsi@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org; devel@linuxdriverproject.org; KY
> Srinivasan <kys@microsoft.com>; Haiyang Zhang
> <haiyangz@microsoft.com>; Cathy Avery <cavery@redhat.com>; James E.J.
> Bottomley <JBottomley@odin.com>; Martin K. Petersen"
> <martin.petersen@oracle.com>
> Subject: [PATCH] scsi: storvsc: fix SRB_STATUS_ABORTED handling
> 
> Commit 3209f9d780d1 ("scsi: storvsc: Fix a bug in the handling of SRB
> status flags") filtered SRB_STATUS_AUTOSENSE_VALID out effectively
> making
> the (SRB_STATUS_ABORTED | SRB_STATUS_AUTOSENSE_VALID) case a dead
> code. The
> logic from this branch (e.g. storvsc_device_scan() call) is still required,
> fix the check.
> 
> Fixes: 3209f9d780d1 ("scsi: storvsc: Fix a bug in the handling of SRB status
> flags")
> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>

Thanks Vitaly.

Acked-by: K. Y. Srinivasan <kys@microsoft.com>
> ---
>  drivers/scsi/storvsc_drv.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
> index 292c04e..3ddcabb 100644
> --- a/drivers/scsi/storvsc_drv.c
> +++ b/drivers/scsi/storvsc_drv.c
> @@ -914,8 +914,9 @@ static void storvsc_handle_error(struct
> vmscsi_request *vm_srb,
>  		do_work = true;
>  		process_err_fn = storvsc_remove_lun;
>  		break;
> -	case (SRB_STATUS_ABORTED | SRB_STATUS_AUTOSENSE_VALID):
> -		if ((asc == 0x2a) && (ascq == 0x9)) {
> +	case SRB_STATUS_ABORTED:
> +		if (vm_srb->srb_status & SRB_STATUS_AUTOSENSE_VALID
> &&
> +		    (asc == 0x2a) && (ascq == 0x9)) {
>  			do_work = true;
>  			process_err_fn = storvsc_device_scan;
>  			/*
> --
> 2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin K. Petersen March 9, 2016, 1:59 a.m. UTC | #2
>>>>> "Vitaly" == Vitaly Kuznetsov <vkuznets@redhat.com> writes:

Vitaly> Commit 3209f9d780d1 ("scsi: storvsc: Fix a bug in the handling
Vitaly> of SRB status flags") filtered SRB_STATUS_AUTOSENSE_VALID out
Vitaly> effectively making the (SRB_STATUS_ABORTED |
Vitaly> SRB_STATUS_AUTOSENSE_VALID) case a dead code. The logic from
Vitaly> this branch (e.g. storvsc_device_scan() call) is still required,
Vitaly> fix the check.

Applied to 4.5/scsi-fixes.
diff mbox

Patch

diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index 292c04e..3ddcabb 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -914,8 +914,9 @@  static void storvsc_handle_error(struct vmscsi_request *vm_srb,
 		do_work = true;
 		process_err_fn = storvsc_remove_lun;
 		break;
-	case (SRB_STATUS_ABORTED | SRB_STATUS_AUTOSENSE_VALID):
-		if ((asc == 0x2a) && (ascq == 0x9)) {
+	case SRB_STATUS_ABORTED:
+		if (vm_srb->srb_status & SRB_STATUS_AUTOSENSE_VALID &&
+		    (asc == 0x2a) && (ascq == 0x9)) {
 			do_work = true;
 			process_err_fn = storvsc_device_scan;
 			/*