Skip to content

Commit

Permalink
storvsc: Rather than look for sets of specific protocol versions, mak…
Browse files Browse the repository at this point in the history
…e decisions based on ranges.

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.

Tested-by: Alex Ng <alexng@microsoft.com>
Signed-off-by: Keith Mange <keith.mange@microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
  • Loading branch information
Keith Mange authored and James Bottomley committed Aug 27, 2015
1 parent 8957620 commit 6ee5c61
Showing 1 changed file with 3 additions and 8 deletions.
11 changes: 3 additions & 8 deletions drivers/scsi/storvsc_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -981,8 +981,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;
Expand Down Expand Up @@ -1759,18 +1758,15 @@ 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;
vmstor_current_minor = VMSTOR_WIN7_MINOR;
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;
Expand All @@ -1784,7 +1780,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 *
Expand Down

0 comments on commit 6ee5c61

Please sign in to comment.