]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: storvsc: Process unsupported MODE_SENSE_10
authorLong Li <longli@microsoft.com>
Sat, 17 Jan 2026 01:03:02 +0000 (17:03 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Jan 2026 09:27:34 +0000 (10:27 +0100)
commit 9eacec5d18f98f89be520eeeef4b377acee3e4b8 upstream.

The Hyper-V host does not support MODE_SENSE_10 and MODE_SENSE.  The
driver handles MODE_SENSE as unsupported command, but not for
MODE_SENSE_10. Add MODE_SENSE_10 to the same handling logic and return
correct code to SCSI layer.

Fixes: 89ae7d709357 ("Staging: hv: storvsc: Move the storage driver out of the staging area")
Cc: stable@kernel.org
Signed-off-by: Long Li <longli@microsoft.com>
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Link: https://patch.msgid.link/20260117010302.294068-1-longli@linux.microsoft.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/storvsc_drv.c

index 954a1cc50ba746c596742a1df5e6a48d05562865..9dcad02ce4895b40da5b6cd65a26b879b2654901 100644 (file)
@@ -1145,7 +1145,7 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device,
         * The current SCSI handling on the host side does
         * not correctly handle:
         * INQUIRY command with page code parameter set to 0x80
-        * MODE_SENSE command with cmd[2] == 0x1c
+        * MODE_SENSE and MODE_SENSE_10 command with cmd[2] == 0x1c
         * MAINTENANCE_IN is not supported by HyperV FC passthrough
         *
         * Setup srb and scsi status so this won't be fatal.
@@ -1155,6 +1155,7 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device,
 
        if ((stor_pkt->vm_srb.cdb[0] == INQUIRY) ||
           (stor_pkt->vm_srb.cdb[0] == MODE_SENSE) ||
+          (stor_pkt->vm_srb.cdb[0] == MODE_SENSE_10) ||
           (stor_pkt->vm_srb.cdb[0] == MAINTENANCE_IN &&
           hv_dev_is_fc(device))) {
                vstor_packet->vm_srb.scsi_status = 0;