RE: [PATCH 1/6] scsi: storvsc: Rather than look for sets of specific protocol versions, make decisions based on ranges.

From: Long Li
Date: Fri May 29 2015 - 16:48:00 EST




> -----Original Message-----
> From: devel [mailto:driverdev-devel-bounces@xxxxxxxxxxxxxxxxxxxxxx] On
> Behalf Of K. Y. Srinivasan
> Sent: Friday, May 29, 2015 1:29 PM
> To: gregkh@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> devel@xxxxxxxxxxxxxxxxxxxxxx; ohering@xxxxxxxx; jbottomley@xxxxxxxxxxxxx;
> hch@xxxxxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; apw@xxxxxxxxxxxxx;
> vkuznets@xxxxxxxxxx; jasowang@xxxxxxxxxx
> Cc: Keith Mange
> Subject: [PATCH 1/6] scsi: storvsc: Rather than look for sets of specific protocol
> versions, make decisions based on ranges.
>
> From: keith.mange@xxxxxxxxxxxxx <keith.mange@xxxxxxxxxxxxx>
>
> Rather than look for sets of specific protocol versions, make decisions based on
> ranges. This will be safer and require fewer changes going forward as we add
> more storage protocol versions.
>
Reviewed-by: Long Li <longli@xxxxxxxxxxxxx>
> Tested-by: Alex Ng <alexng@xxxxxxxxxxxxx>
> Signed-off-by: Keith Mange <keith.mange@xxxxxxxxxxxxx>
> Signed-off-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
> ---
> drivers/scsi/storvsc_drv.c | 11 +++--------
> 1 files changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index
> 3c6584f..582f3b5 100644
> --- a/drivers/scsi/storvsc_drv.c
> +++ b/drivers/scsi/storvsc_drv.c
> @@ -988,8 +988,7 @@ static int storvsc_channel_init(struct hv_device *device)
> * support multi-channel.
> */
> max_chns = vstor_packet-
> >storage_channel_properties.max_channel_cnt;
> - if ((vmbus_proto_version != VERSION_WIN7) &&
> - (vmbus_proto_version != VERSION_WS2008)) {
> + if (vmbus_proto_version >= VERSION_WIN8) {
> if (vstor_packet->storage_channel_properties.flags &
> STORAGE_CHANNEL_SUPPORTS_MULTI_CHANNEL)
> process_sub_channels = true;
> @@ -1758,9 +1757,7 @@ static int storvsc_probe(struct hv_device *device,
> * set state to properly communicate with the host.
> */
>
> - switch (vmbus_proto_version) {
> - case VERSION_WS2008:
> - case VERSION_WIN7:
> + if (vmbus_proto_version < VERSION_WIN8) {
> sense_buffer_size = PRE_WIN8_STORVSC_SENSE_BUFFER_SIZE;
> vmscsi_size_delta = sizeof(struct vmscsi_win8_extension);
> vmstor_current_major = VMSTOR_WIN7_MAJOR; @@ -
> 1768,8 +1765,7 @@ static int storvsc_probe(struct hv_device *device,
> max_luns_per_target =
> STORVSC_IDE_MAX_LUNS_PER_TARGET;
> max_targets = STORVSC_IDE_MAX_TARGETS;
> max_channels = STORVSC_IDE_MAX_CHANNELS;
> - break;
> - default:
> + } else {
> sense_buffer_size =
> POST_WIN7_STORVSC_SENSE_BUFFER_SIZE;
> vmscsi_size_delta = 0;
> vmstor_current_major = VMSTOR_WIN8_MAJOR; @@ -
> 1783,7 +1779,6 @@ static int storvsc_probe(struct hv_device *device,
> * VCPUs in the guest.
> */
> max_sub_channels = (num_cpus /
> storvsc_vcpus_per_sub_channel);
> - break;
> }
>
> scsi_driver.can_queue = (max_outstanding_req_per_channel *
> --
> 1.7.4.1
>
> _______________________________________________
> devel mailing list
> devel@xxxxxxxxxxxxxxxxxxxxxx
> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/