Commit cb11fead authored by Keith Mange's avatar Keith Mange Committed by James Bottomley

storvsc: use correct defaults for values determined by protocol negotiation

Use correct defaults for values determined by protocol negotiation,
instead of resetting them with every scsi controller.
Tested-by: default avatarAlex Ng <alexng@microsoft.com>
Signed-off-by: default avatarKeith Mange <keith.mange@microsoft.com>
Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Odin.com>
parent 1a363108
...@@ -151,19 +151,17 @@ struct hv_fc_wwn_packet { ...@@ -151,19 +151,17 @@ struct hv_fc_wwn_packet {
/* /*
* Sense buffer size changed in win8; have a run-time * Sense buffer size changed in win8; have a run-time
* variable to track the size we should use. * variable to track the size we should use. This value will
* likely change during protocol negotiation but it is valid
* to start by assuming pre-Win8.
*/ */
static int sense_buffer_size; static int sense_buffer_size = PRE_WIN8_STORVSC_SENSE_BUFFER_SIZE;
/* /*
* The size of the vmscsi_request has changed in win8. The * The storage protocol version is determined during the
* additional size is because of new elements added to the * initial exchange with the host. It will indicate which
* structure. These elements are valid only when we are talking * storage functionality is available in the host.
* to a win8 host. */
* Track the correction to size we need to apply.
*/
static int vmscsi_size_delta;
static int vmstor_proto_version; static int vmstor_proto_version;
struct vmscsi_win8_extension { struct vmscsi_win8_extension {
...@@ -208,6 +206,17 @@ struct vmscsi_request { ...@@ -208,6 +206,17 @@ struct vmscsi_request {
} __attribute((packed)); } __attribute((packed));
/*
* The size of the vmscsi_request has changed in win8. The
* additional size is because of new elements added to the
* structure. These elements are valid only when we are talking
* to a win8 host.
* Track the correction to size we need to apply. This value
* will likely change during protocol negotiation but it is
* valid to start by assuming pre-Win8.
*/
static int vmscsi_size_delta = sizeof(struct vmscsi_win8_extension);
/* /*
* The list of storage protocols in order of preference. * The list of storage protocols in order of preference.
*/ */
...@@ -1810,14 +1819,10 @@ static int storvsc_probe(struct hv_device *device, ...@@ -1810,14 +1819,10 @@ static int storvsc_probe(struct hv_device *device,
*/ */
if (vmbus_proto_version < VERSION_WIN8) { if (vmbus_proto_version < VERSION_WIN8) {
sense_buffer_size = PRE_WIN8_STORVSC_SENSE_BUFFER_SIZE;
vmscsi_size_delta = sizeof(struct vmscsi_win8_extension);
max_luns_per_target = STORVSC_IDE_MAX_LUNS_PER_TARGET; max_luns_per_target = STORVSC_IDE_MAX_LUNS_PER_TARGET;
max_targets = STORVSC_IDE_MAX_TARGETS; max_targets = STORVSC_IDE_MAX_TARGETS;
max_channels = STORVSC_IDE_MAX_CHANNELS; max_channels = STORVSC_IDE_MAX_CHANNELS;
} else { } else {
sense_buffer_size = POST_WIN7_STORVSC_SENSE_BUFFER_SIZE;
vmscsi_size_delta = 0;
max_luns_per_target = STORVSC_MAX_LUNS_PER_TARGET; max_luns_per_target = STORVSC_MAX_LUNS_PER_TARGET;
max_targets = STORVSC_MAX_TARGETS; max_targets = STORVSC_MAX_TARGETS;
max_channels = STORVSC_MAX_CHANNELS; max_channels = STORVSC_MAX_CHANNELS;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment