> -----Original Message----- > From: Johannes Thumshirn [mailto:jthumshirn@xxxxxxx] > Sent: Thursday, August 13, 2015 7:34 AM > To: KY Srinivasan <kys@xxxxxxxxxxxxx>; Keith Mange > <Keith.Mange@xxxxxxxxxxxxx> > Cc: gregkh@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > devel@xxxxxxxxxxxxxxxxxxxxxx; ohering@xxxxxxxx; > jbottomley@xxxxxxxxxxxxx; hch@xxxxxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; > apw@xxxxxxxxxxxxx; vkuznets@xxxxxxxxxx; jasowang@xxxxxxxxxx > Subject: Re: [PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage > protocol negotiation from the vmbus protocol negotiation. > > "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx> writes: > > > From: Keith Mange <keith.mange@xxxxxxxxxxxxx> > > > > Currently we are making decisions based on vmbus protocol versions > > that have been negotiated; use storage potocol versions instead. > > > > 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 | 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? Certainly. These patches have been floating around for more than a month now and if it is ok with you, I will submit a patch on top of this current series to address the concern you have raised. James, please let me know. Regards, K. Y > > > + > > +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@xxxxxxx +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 ��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f