From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753153AbbHMOdg (ORCPT ); Thu, 13 Aug 2015 10:33:36 -0400 Received: from mx2.suse.de ([195.135.220.15]:44143 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752985AbbHMOde convert rfc822-to-8bit (ORCPT ); Thu, 13 Aug 2015 10:33:34 -0400 From: Johannes Thumshirn To: "K. Y. Srinivasan" , Keith Mange Cc: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, ohering@suse.com, jbottomley@parallels.com, hch@infradead.org, linux-scsi@vger.kernel.org, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com Subject: Re: [PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. References: <1439480609-11099-1-git-send-email-kys@microsoft.com> <1439480632-11144-1-git-send-email-kys@microsoft.com> <1439480632-11144-3-git-send-email-kys@microsoft.com> Date: Thu, 13 Aug 2015 16:33:30 +0200 In-Reply-To: <1439480632-11144-3-git-send-email-kys@microsoft.com> (K. Y. Srinivasan's message of "Thu, 13 Aug 2015 08:43:48 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org "K. Y. Srinivasan" writes: > From: Keith Mange > > Currently we are making decisions based on vmbus protocol versions > that have been negotiated; use storage potocol versions instead. > > Tested-by: Alex Ng > Signed-off-by: Keith Mange > Signed-off-by: K. Y. Srinivasan > --- > drivers/scsi/storvsc_drv.c | 109 +++++++++++++++++++++++++++++++++++--------- > 1 files changed, 87 insertions(+), 22 deletions(-) > > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c > index 5f9d133..f29871e 100644 > --- a/drivers/scsi/storvsc_drv.c > +++ b/drivers/scsi/storvsc_drv.c > @@ -56,14 +56,18 @@ > * V1 RC > 2008/1/31: 2.0 > * Win7: 4.2 > * Win8: 5.1 > + * Win8.1: 6.0 > + * Win10: 6.2 > */ > > #define VMSTOR_PROTO_VERSION(MAJOR_, MINOR_) ((((MAJOR_) & 0xff) << 8) | \ > (((MINOR_) & 0xff))) > > +#define VMSTOR_PROTO_VERSION_WIN6 VMSTOR_PROTO_VERSION(2, 0) > #define VMSTOR_PROTO_VERSION_WIN7 VMSTOR_PROTO_VERSION(4, 2) > #define VMSTOR_PROTO_VERSION_WIN8 VMSTOR_PROTO_VERSION(5, 1) > - > +#define VMSTOR_PROTO_VERSION_WIN8_1 VMSTOR_PROTO_VERSION(6, 0) > +#define VMSTOR_PROTO_VERSION_WIN10 VMSTOR_PROTO_VERSION(6, 2) > > /* Packet structure describing virtual storage requests. */ > enum vstor_packet_operation { > @@ -205,6 +209,46 @@ struct vmscsi_request { > > > /* > + * The list of storage protocols in order of preference. > + */ > +struct vmstor_protocol { > + int protocol_version; > + int sense_buffer_size; > + int vmscsi_size_delta; > +}; > + > +#define VMSTOR_NUM_PROTOCOLS 5 can't you just use ARRAY_SIZE() here, so you don't have to touch the constant every time a new protocol is appended to the list? > + > +const struct vmstor_protocol vmstor_protocols[VMSTOR_NUM_PROTOCOLS] = { > + { > + VMSTOR_PROTO_VERSION_WIN10, > + POST_WIN7_STORVSC_SENSE_BUFFER_SIZE, > + 0 > + }, > + { > + VMSTOR_PROTO_VERSION_WIN8_1, > + POST_WIN7_STORVSC_SENSE_BUFFER_SIZE, > + 0 > + }, > + { > + VMSTOR_PROTO_VERSION_WIN8, > + POST_WIN7_STORVSC_SENSE_BUFFER_SIZE, > + 0 > + }, > + { > + VMSTOR_PROTO_VERSION_WIN7, > + PRE_WIN8_STORVSC_SENSE_BUFFER_SIZE, > + sizeof(struct vmscsi_win8_extension), > + }, > + { > + VMSTOR_PROTO_VERSION_WIN6, > + PRE_WIN8_STORVSC_SENSE_BUFFER_SIZE, > + sizeof(struct vmscsi_win8_extension), > + } > +}; > + Thanks, Johannes -- Johannes Thumshirn Storage jthumshirn@suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850