This is a note to let you know that I've just added the patch titled Drivers: scsi: storvsc: Fix a bug in handling VMBUS protocol version to the 3.14-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: drivers-scsi-storvsc-fix-a-bug-in-handling-vmbus-protocol-version.patch and it can be found in the queue-3.14 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From adb6f9e1a8c6af1037232b59edb11277471537ea Mon Sep 17 00:00:00 2001 From: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx> Date: Sat, 12 Jul 2014 09:48:29 -0700 Subject: Drivers: scsi: storvsc: Fix a bug in handling VMBUS protocol version From: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx> commit adb6f9e1a8c6af1037232b59edb11277471537ea upstream. Based on the negotiated VMBUS protocol version, we adjust the size of the storage protocol messages. The two sizes we currently handle are pre-win8 and post-win8. In WS2012 R2, we are negotiating higher VMBUS protocol version than the win8 version. Make adjustments to correctly handle this. Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx> Reviewed-by: Hannes Reinecke <hare@xxxxxxx> Signed-off-by: Christoph Hellwig <hch@xxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/scsi/storvsc_drv.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -1764,19 +1764,22 @@ static int storvsc_probe(struct hv_devic * set state to properly communicate with the host. */ - if (vmbus_proto_version == VERSION_WIN8) { - sense_buffer_size = POST_WIN7_STORVSC_SENSE_BUFFER_SIZE; - vmscsi_size_delta = 0; - vmstor_current_major = VMSTOR_WIN8_MAJOR; - vmstor_current_minor = VMSTOR_WIN8_MINOR; - } else { + switch (vmbus_proto_version) { + case VERSION_WS2008: + case VERSION_WIN7: sense_buffer_size = PRE_WIN8_STORVSC_SENSE_BUFFER_SIZE; vmscsi_size_delta = sizeof(struct vmscsi_win8_extension); vmstor_current_major = VMSTOR_WIN7_MAJOR; vmstor_current_minor = VMSTOR_WIN7_MINOR; + break; + default: + sense_buffer_size = POST_WIN7_STORVSC_SENSE_BUFFER_SIZE; + vmscsi_size_delta = 0; + vmstor_current_major = VMSTOR_WIN8_MAJOR; + vmstor_current_minor = VMSTOR_WIN8_MINOR; + break; } - if (dev_id->driver_data == SFC_GUID) scsi_driver.can_queue = (STORVSC_MAX_IO_REQUESTS * STORVSC_FC_MAX_TARGETS); Patches currently in stable-queue which might be from kys@xxxxxxxxxxxxx are queue-3.14/drivers-scsi-storvsc-implement-a-eh_timed_out-handler.patch queue-3.14/drivers-scsi-storvsc-correctly-handle-test_unit_ready-failure.patch queue-3.14/drivers-scsi-storvsc-set-srb_flags-in-all-cases.patch queue-3.14/drivers-scsi-storvsc-fix-a-bug-in-handling-vmbus-protocol-version.patch queue-3.14/scsi-add-a-blacklist-flag-which-enables-vpd-page-inquiries.patch queue-3.14/drivers-scsi-storvsc-change-the-limits-to-reflect-the-values-on-the-host.patch queue-3.14/drivers-scsi-storvsc-filter-commands-based-on-the-storage-protocol-version.patch queue-3.14/drivers-scsi-storvsc-set-cmd_per_lun-to-reflect-value-supported-by-the-host.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html