Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+19 −14
Original line number Diff line number Diff line
@@ -151,19 +151,17 @@ struct hv_fc_wwn_packet {

/*
 * 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
 * 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.
 * The storage protocol version is determined during the
 * initial exchange with the host.  It will indicate which
 * storage functionality is available in the host.
*/

static int vmscsi_size_delta;
static int vmstor_proto_version;

struct vmscsi_win8_extension {
@@ -208,6 +206,17 @@ struct vmscsi_request {
} __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.
 */
@@ -1810,14 +1819,10 @@ static int storvsc_probe(struct hv_device *device,
	 */

	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_targets = STORVSC_IDE_MAX_TARGETS;
		max_channels = STORVSC_IDE_MAX_CHANNELS;
	} else {
		sense_buffer_size = POST_WIN7_STORVSC_SENSE_BUFFER_SIZE;
		vmscsi_size_delta = 0;
		max_luns_per_target = STORVSC_MAX_LUNS_PER_TARGET;
		max_targets = STORVSC_MAX_TARGETS;
		max_channels = STORVSC_MAX_CHANNELS;