Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1206839 > unrolled thread
| Started by | "K. Y. Srinivasan" <kys@microsoft.com> |
|---|---|
| First post | 2015-08-13 16:20 +0200 |
| Last post | 2015-08-14 21:30 +0200 |
| Articles | 5 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. "K. Y. Srinivasan" <kys@microsoft.com> - 2015-08-13 16:20 +0200
Re: [PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. Johannes Thumshirn <jthumshirn@suse.de> - 2015-08-13 16:40 +0200
RE: [PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. KY Srinivasan <kys@microsoft.com> - 2015-08-13 17:20 +0200
Re: [PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. Johannes Thumshirn <jthumshirn@suse.de> - 2015-08-14 08:50 +0200
RE: [PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. KY Srinivasan <kys@microsoft.com> - 2015-08-14 21:30 +0200
| From | "K. Y. Srinivasan" <kys@microsoft.com> |
|---|---|
| Date | 2015-08-13 16:20 +0200 |
| Subject | [PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. |
| Message-ID | <pX1wl-5Ix-1@gated-at.bofh.it> |
From: Keith Mange <keith.mange@microsoft.com>
Currently we are making decisions based on vmbus protocol versions
that have been negotiated; use storage potocol versions instead.
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>
---
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
+
+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),
+ }
+};
+
+
+/*
* This structure is sent during the intialization phase to get the different
* properties of the channel.
*/
@@ -871,7 +915,7 @@ static int storvsc_channel_init(struct hv_device *device)
struct storvsc_device *stor_device;
struct storvsc_cmd_request *request;
struct vstor_packet *vstor_packet;
- int ret, t;
+ int ret, t, i;
int max_chns;
bool process_sub_channels = false;
@@ -911,36 +955,59 @@ static int storvsc_channel_init(struct hv_device *device)
goto cleanup;
- /* reuse the packet for version range supported */
- memset(vstor_packet, 0, sizeof(struct vstor_packet));
- vstor_packet->operation = VSTOR_OPERATION_QUERY_PROTOCOL_VERSION;
- vstor_packet->flags = REQUEST_COMPLETION_FLAG;
+ for (i = 0; i < VMSTOR_NUM_PROTOCOLS; i++) {
+ /* reuse the packet for version range supported */
+ memset(vstor_packet, 0, sizeof(struct vstor_packet));
+ vstor_packet->operation =
+ VSTOR_OPERATION_QUERY_PROTOCOL_VERSION;
+ vstor_packet->flags = REQUEST_COMPLETION_FLAG;
- vstor_packet->version.major_minor = vmstor_proto_version;
+ vstor_packet->version.major_minor =
+ vmstor_protocols[i].protocol_version;
- /*
- * The revision number is only used in Windows; set it to 0.
- */
- vstor_packet->version.revision = 0;
+ /*
+ * The revision number is only used in Windows; set it to 0.
+ */
+ vstor_packet->version.revision = 0;
- ret = vmbus_sendpacket(device->channel, vstor_packet,
+ ret = vmbus_sendpacket(device->channel, vstor_packet,
(sizeof(struct vstor_packet) -
vmscsi_size_delta),
(unsigned long)request,
VM_PKT_DATA_INBAND,
VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
- if (ret != 0)
- goto cleanup;
+ if (ret != 0)
+ goto cleanup;
- t = wait_for_completion_timeout(&request->wait_event, 5*HZ);
- if (t == 0) {
- ret = -ETIMEDOUT;
- goto cleanup;
+ t = wait_for_completion_timeout(&request->wait_event, 5*HZ);
+ if (t == 0) {
+ ret = -ETIMEDOUT;
+ goto cleanup;
+ }
+
+ if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO) {
+ ret = -EINVAL;
+ goto cleanup;
+ }
+
+ if (vstor_packet->status == 0) {
+ vmstor_proto_version =
+ vmstor_protocols[i].protocol_version;
+
+ sense_buffer_size =
+ vmstor_protocols[i].sense_buffer_size;
+
+ vmscsi_size_delta =
+ vmstor_protocols[i].vmscsi_size_delta;
+
+ break;
+ }
}
- if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO ||
- vstor_packet->status != 0)
+ if (vstor_packet->status != 0) {
+ ret = -EINVAL;
goto cleanup;
+ }
memset(vstor_packet, 0, sizeof(struct vstor_packet));
@@ -1745,14 +1812,12 @@ 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);
- vmstor_proto_version = VMSTOR_PROTO_VERSION_WIN7;
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;
- vmstor_proto_version = VMSTOR_PROTO_VERSION_WIN8;
max_luns_per_target = STORVSC_MAX_LUNS_PER_TARGET;
max_targets = STORVSC_MAX_TARGETS;
max_channels = STORVSC_MAX_CHANNELS;
--
1.7.4.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Johannes Thumshirn <jthumshirn@suse.de> |
|---|---|
| Date | 2015-08-13 16:40 +0200 |
| Message-ID | <pX1PI-652-21@gated-at.bofh.it> |
| In reply to | #1206839 |
"K. Y. Srinivasan" <kys@microsoft.com> writes:
> From: Keith Mange <keith.mange@microsoft.com>
>
> Currently we are making decisions based on vmbus protocol versions
> that have been negotiated; use storage potocol versions instead.
>
> 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>
> ---
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | KY Srinivasan <kys@microsoft.com> |
|---|---|
| Date | 2015-08-13 17:20 +0200 |
| Subject | RE: [PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. |
| Message-ID | <pX2sr-74a-21@gated-at.bofh.it> |
| In reply to | #1206864 |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSm9oYW5uZXMgVGh1bXNo aXJuIFttYWlsdG86anRodW1zaGlybkBzdXNlLmRlXQ0KPiBTZW50OiBUaHVyc2RheSwgQXVndXN0 IDEzLCAyMDE1IDc6MzQgQU0NCj4gVG86IEtZIFNyaW5pdmFzYW4gPGt5c0BtaWNyb3NvZnQuY29t PjsgS2VpdGggTWFuZ2UNCj4gPEtlaXRoLk1hbmdlQG1pY3Jvc29mdC5jb20+DQo+IENjOiBncmVn a2hAbGludXhmb3VuZGF0aW9uLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsNCj4g ZGV2ZWxAbGludXhkcml2ZXJwcm9qZWN0Lm9yZzsgb2hlcmluZ0BzdXNlLmNvbTsNCj4gamJvdHRv bWxleUBwYXJhbGxlbHMuY29tOyBoY2hAaW5mcmFkZWFkLm9yZzsgbGludXgtc2NzaUB2Z2VyLmtl cm5lbC5vcmc7DQo+IGFwd0BjYW5vbmljYWwuY29tOyB2a3V6bmV0c0ByZWRoYXQuY29tOyBqYXNv d2FuZ0ByZWRoYXQuY29tDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggUkVTRU5EIFYyIDMvN10gc2Nz aTogc3RvcnZzYzogVW50YW5nbGUgdGhlIHN0b3JhZ2UNCj4gcHJvdG9jb2wgbmVnb3RpYXRpb24g ZnJvbSB0aGUgdm1idXMgcHJvdG9jb2wgbmVnb3RpYXRpb24uDQo+IA0KPiAiSy4gWS4gU3Jpbml2 YXNhbiIgPGt5c0BtaWNyb3NvZnQuY29tPiB3cml0ZXM6DQo+IA0KPiA+IEZyb206IEtlaXRoIE1h bmdlIDxrZWl0aC5tYW5nZUBtaWNyb3NvZnQuY29tPg0KPiA+DQo+ID4gQ3VycmVudGx5IHdlIGFy ZSBtYWtpbmcgZGVjaXNpb25zIGJhc2VkIG9uIHZtYnVzIHByb3RvY29sIHZlcnNpb25zDQo+ID4g dGhhdCBoYXZlIGJlZW4gbmVnb3RpYXRlZDsgdXNlIHN0b3JhZ2UgcG90b2NvbCB2ZXJzaW9ucyBp bnN0ZWFkLg0KPiA+DQo+ID4gVGVzdGVkLWJ5OiBBbGV4IE5nIDxhbGV4bmdAbWljcm9zb2Z0LmNv bT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBLZWl0aCBNYW5nZSA8a2VpdGgubWFuZ2VAbWljcm9zb2Z0 LmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBLLiBZLiBTcmluaXZhc2FuIDxreXNAbWljcm9zb2Z0 LmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9zY3NpL3N0b3J2c2NfZHJ2LmMgfCAgMTA5DQo+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tDQo+ID4gIDEgZmls ZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N0b3J2c2NfZHJ2LmMgYi9kcml2ZXJzL3Njc2kvc3Rv cnZzY19kcnYuYw0KPiA+IGluZGV4IDVmOWQxMzMuLmYyOTg3MWUgMTAwNjQ0DQo+ID4gLS0tIGEv ZHJpdmVycy9zY3NpL3N0b3J2c2NfZHJ2LmMNCj4gPiArKysgYi9kcml2ZXJzL3Njc2kvc3RvcnZz Y19kcnYuYw0KPiA+IEBAIC01NiwxNCArNTYsMTggQEANCj4gPiAgICogVjEgUkMgPiAyMDA4LzEv MzE6ICAyLjANCj4gPiAgICogV2luNzogNC4yDQo+ID4gICAqIFdpbjg6IDUuMQ0KPiA+ICsgKiBX aW44LjE6IDYuMA0KPiA+ICsgKiBXaW4xMDogNi4yDQo+ID4gICAqLw0KPiA+DQo+ID4gICNkZWZp bmUgVk1TVE9SX1BST1RPX1ZFUlNJT04oTUFKT1JfLCBNSU5PUl8pCSgoKChNQUpPUl8pDQo+ICYg MHhmZikgPDwgOCkgfCBcDQo+ID4gIAkJCQkJCSgoKE1JTk9SXykgJiAweGZmKSkpDQo+ID4NCj4g PiArI2RlZmluZSBWTVNUT1JfUFJPVE9fVkVSU0lPTl9XSU42DQo+IAlWTVNUT1JfUFJPVE9fVkVS U0lPTigyLCAwKQ0KPiA+ICAjZGVmaW5lIFZNU1RPUl9QUk9UT19WRVJTSU9OX1dJTjcNCj4gCVZN U1RPUl9QUk9UT19WRVJTSU9OKDQsIDIpDQo+ID4gICNkZWZpbmUgVk1TVE9SX1BST1RPX1ZFUlNJ T05fV0lOOA0KPiAJVk1TVE9SX1BST1RPX1ZFUlNJT04oNSwgMSkNCj4gPiAtDQo+ID4gKyNkZWZp bmUgVk1TVE9SX1BST1RPX1ZFUlNJT05fV0lOOF8xDQo+IAlWTVNUT1JfUFJPVE9fVkVSU0lPTig2 LCAwKQ0KPiA+ICsjZGVmaW5lIFZNU1RPUl9QUk9UT19WRVJTSU9OX1dJTjEwDQo+IAlWTVNUT1Jf UFJPVE9fVkVSU0lPTig2LCAyKQ0KPiA+DQo+ID4gIC8qICBQYWNrZXQgc3RydWN0dXJlIGRlc2Ny aWJpbmcgdmlydHVhbCBzdG9yYWdlIHJlcXVlc3RzLiAqLw0KPiA+ICBlbnVtIHZzdG9yX3BhY2tl dF9vcGVyYXRpb24gew0KPiA+IEBAIC0yMDUsNiArMjA5LDQ2IEBAIHN0cnVjdCB2bXNjc2lfcmVx dWVzdCB7DQo+ID4NCj4gPg0KPiA+ICAvKg0KPiA+ICsgKiBUaGUgbGlzdCBvZiBzdG9yYWdlIHBy b3RvY29scyBpbiBvcmRlciBvZiBwcmVmZXJlbmNlLg0KPiA+ICsgKi8NCj4gPiArc3RydWN0IHZt c3Rvcl9wcm90b2NvbCB7DQo+ID4gKwlpbnQgcHJvdG9jb2xfdmVyc2lvbjsNCj4gPiArCWludCBz ZW5zZV9idWZmZXJfc2l6ZTsNCj4gPiArCWludCB2bXNjc2lfc2l6ZV9kZWx0YTsNCj4gPiArfTsN Cj4gPiArDQo+ID4gKyNkZWZpbmUgVk1TVE9SX05VTV9QUk9UT0NPTFMgICAgNQ0KPiANCj4gY2Fu J3QgeW91IGp1c3QgdXNlIEFSUkFZX1NJWkUoKSBoZXJlLCBzbyB5b3UgZG9uJ3QgaGF2ZSB0byB0 b3VjaCB0aGUNCj4gY29uc3RhbnQgZXZlcnkgdGltZSBhIG5ldyBwcm90b2NvbCBpcyBhcHBlbmRl ZCB0byB0aGUgbGlzdD8NCg0KQ2VydGFpbmx5LiBUaGVzZSBwYXRjaGVzIGhhdmUgYmVlbiBmbG9h dGluZyBhcm91bmQgZm9yIG1vcmUgdGhhbiBhIG1vbnRoIG5vdyBhbmQgaWYgaXQgaXMgb2sNCndp dGggeW91LCBJIHdpbGwgc3VibWl0IGEgcGF0Y2ggb24gdG9wIG9mIHRoaXMgY3VycmVudCBzZXJp ZXMgdG8gYWRkcmVzcyB0aGUgY29uY2VybiB5b3UgaGF2ZSByYWlzZWQuDQpKYW1lcywgcGxlYXNl IGxldCBtZSBrbm93Lg0KDQpSZWdhcmRzLA0KDQpLLiBZIA0KPiANCj4gPiArDQo+ID4gK2NvbnN0 IHN0cnVjdCB2bXN0b3JfcHJvdG9jb2wNCj4gdm1zdG9yX3Byb3RvY29sc1tWTVNUT1JfTlVNX1BS T1RPQ09MU10gPSB7DQo+ID4gKwl7DQo+ID4gKwkJVk1TVE9SX1BST1RPX1ZFUlNJT05fV0lOMTAs DQo+ID4gKwkJUE9TVF9XSU43X1NUT1JWU0NfU0VOU0VfQlVGRkVSX1NJWkUsDQo+ID4gKwkJMA0K PiA+ICsJfSwNCj4gPiArCXsNCj4gPiArCQlWTVNUT1JfUFJPVE9fVkVSU0lPTl9XSU44XzEsDQo+ ID4gKwkJUE9TVF9XSU43X1NUT1JWU0NfU0VOU0VfQlVGRkVSX1NJWkUsDQo+ID4gKwkJMA0KPiA+ ICsJfSwNCj4gPiArCXsNCj4gPiArCQlWTVNUT1JfUFJPVE9fVkVSU0lPTl9XSU44LA0KPiA+ICsJ CVBPU1RfV0lON19TVE9SVlNDX1NFTlNFX0JVRkZFUl9TSVpFLA0KPiA+ICsJCTANCj4gPiArCX0s DQo+ID4gKwl7DQo+ID4gKwkJVk1TVE9SX1BST1RPX1ZFUlNJT05fV0lONywNCj4gPiArCQlQUkVf V0lOOF9TVE9SVlNDX1NFTlNFX0JVRkZFUl9TSVpFLA0KPiA+ICsJCXNpemVvZihzdHJ1Y3Qgdm1z Y3NpX3dpbjhfZXh0ZW5zaW9uKSwNCj4gPiArCX0sDQo+ID4gKwl7DQo+ID4gKwkJVk1TVE9SX1BS T1RPX1ZFUlNJT05fV0lONiwNCj4gPiArCQlQUkVfV0lOOF9TVE9SVlNDX1NFTlNFX0JVRkZFUl9T SVpFLA0KPiA+ICsJCXNpemVvZihzdHJ1Y3Qgdm1zY3NpX3dpbjhfZXh0ZW5zaW9uKSwNCj4gPiAr CX0NCj4gPiArfTsNCj4gPiArDQo+IA0KPiBUaGFua3MsDQo+ICAgICAgICAgSm9oYW5uZXMNCj4g LS0NCj4gSm9oYW5uZXMgVGh1bXNoaXJuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFN0b3JhZ2UNCj4ganRodW1zaGlybkBzdXNlLmRlICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKzQ5IDkxMSA3NDA1MyA2ODkNCj4gU1VTRSBMSU5VWCBHbWJILCBNYXhm ZWxkc3RyLiA1LCA5MDQwOSBOw7xybmJlcmcNCj4gR0Y6IEYuIEltZW5kw7ZyZmZlciwgSi4gU21p dGhhcmQsIEouIEd1aWxkLCBELiBVcG1hbnl1LCBHLiBOb3J0b24NCj4gSFJCIDIxMjg0IChBRyBO w7xybmJlcmcpDQo+IEtleSBmaW5nZXJwcmludCA9IEVDMzggOUNBQiBDMkM0IEYyNUQgODYwMCAg RDBEMCAwMzkzIDk2OUQgMkQ3NiAwODUwDQo= -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Johannes Thumshirn <jthumshirn@suse.de> |
|---|---|
| Date | 2015-08-14 08:50 +0200 |
| Message-ID | <pXgYp-2Iq-5@gated-at.bofh.it> |
| In reply to | #1206907 |
KY Srinivasan <kys@microsoft.com> writes:
>> -----Original Message-----
>> From: Johannes Thumshirn [mailto:jthumshirn@suse.de]
>> Sent: Thursday, August 13, 2015 7:34 AM
>> To: KY Srinivasan <kys@microsoft.com>; Keith Mange
>> <Keith.Mange@microsoft.com>
>> 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.
>>
>> "K. Y. Srinivasan" <kys@microsoft.com> writes:
>>
>> > From: Keith Mange <keith.mange@microsoft.com>
>> >
>> > Currently we are making decisions based on vmbus protocol versions
>> > that have been negotiated; use storage potocol versions instead.
>> >
>> > 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>
>> > ---
>> > 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.
>
No objections from my side, but it's up to James to decide what and when
he picks up patches.
Thanks,
Johannes
--
Johannes Thumshirn Storage
jthumshirn@suse.de +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | KY Srinivasan <kys@microsoft.com> |
|---|---|
| Date | 2015-08-14 21:30 +0200 |
| Subject | RE: [PATCH RESEND V2 3/7] scsi: storvsc: Untangle the storage protocol negotiation from the vmbus protocol negotiation. |
| Message-ID | <pXsPU-2YS-7@gated-at.bofh.it> |
| In reply to | #1207352 |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSm9oYW5uZXMgVGh1bXNo aXJuIFttYWlsdG86anRodW1zaGlybkBzdXNlLmRlXQ0KPiBTZW50OiBUaHVyc2RheSwgQXVndXN0 IDEzLCAyMDE1IDExOjQ2IFBNDQo+IFRvOiBLWSBTcmluaXZhc2FuIDxreXNAbWljcm9zb2Z0LmNv bT4NCj4gQ2M6IEtlaXRoIE1hbmdlIDxLZWl0aC5NYW5nZUBtaWNyb3NvZnQuY29tPjsNCj4gZ3Jl Z2toQGxpbnV4Zm91bmRhdGlvbi5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+ IGRldmVsQGxpbnV4ZHJpdmVycHJvamVjdC5vcmc7IG9oZXJpbmdAc3VzZS5jb207DQo+IGpib3R0 b21sZXlAcGFyYWxsZWxzLmNvbTsgaGNoQGluZnJhZGVhZC5vcmc7IGxpbnV4LXNjc2lAdmdlci5r ZXJuZWwub3JnOw0KPiBhcHdAY2Fub25pY2FsLmNvbTsgdmt1em5ldHNAcmVkaGF0LmNvbTsgamFz b3dhbmdAcmVkaGF0LmNvbQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIIFJFU0VORCBWMiAzLzddIHNj c2k6IHN0b3J2c2M6IFVudGFuZ2xlIHRoZSBzdG9yYWdlDQo+IHByb3RvY29sIG5lZ290aWF0aW9u IGZyb20gdGhlIHZtYnVzIHByb3RvY29sIG5lZ290aWF0aW9uLg0KPiANCj4gS1kgU3Jpbml2YXNh biA8a3lzQG1pY3Jvc29mdC5jb20+IHdyaXRlczoNCj4gDQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4+IEZyb206IEpvaGFubmVzIFRodW1zaGlybiBbbWFpbHRvOmp0aHVtc2hp cm5Ac3VzZS5kZV0NCj4gPj4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCAxMywgMjAxNSA3OjM0IEFN DQo+ID4+IFRvOiBLWSBTcmluaXZhc2FuIDxreXNAbWljcm9zb2Z0LmNvbT47IEtlaXRoIE1hbmdl DQo+ID4+IDxLZWl0aC5NYW5nZUBtaWNyb3NvZnQuY29tPg0KPiA+PiBDYzogZ3JlZ2toQGxpbnV4 Zm91bmRhdGlvbi5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4+IGRldmVs QGxpbnV4ZHJpdmVycHJvamVjdC5vcmc7IG9oZXJpbmdAc3VzZS5jb207DQo+ID4+IGpib3R0b21s ZXlAcGFyYWxsZWxzLmNvbTsgaGNoQGluZnJhZGVhZC5vcmc7IGxpbnV4LQ0KPiBzY3NpQHZnZXIu a2VybmVsLm9yZzsNCj4gPj4gYXB3QGNhbm9uaWNhbC5jb207IHZrdXpuZXRzQHJlZGhhdC5jb207 IGphc293YW5nQHJlZGhhdC5jb20NCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCBSRVNFTkQgVjIg My83XSBzY3NpOiBzdG9ydnNjOiBVbnRhbmdsZSB0aGUgc3RvcmFnZQ0KPiA+PiBwcm90b2NvbCBu ZWdvdGlhdGlvbiBmcm9tIHRoZSB2bWJ1cyBwcm90b2NvbCBuZWdvdGlhdGlvbi4NCj4gPj4NCj4g Pj4gIksuIFkuIFNyaW5pdmFzYW4iIDxreXNAbWljcm9zb2Z0LmNvbT4gd3JpdGVzOg0KPiA+Pg0K PiA+PiA+IEZyb206IEtlaXRoIE1hbmdlIDxrZWl0aC5tYW5nZUBtaWNyb3NvZnQuY29tPg0KPiA+ PiA+DQo+ID4+ID4gQ3VycmVudGx5IHdlIGFyZSBtYWtpbmcgZGVjaXNpb25zIGJhc2VkIG9uIHZt YnVzIHByb3RvY29sIHZlcnNpb25zDQo+ID4+ID4gdGhhdCBoYXZlIGJlZW4gbmVnb3RpYXRlZDsg dXNlIHN0b3JhZ2UgcG90b2NvbCB2ZXJzaW9ucyBpbnN0ZWFkLg0KPiA+PiA+DQo+ID4+ID4gVGVz dGVkLWJ5OiBBbGV4IE5nIDxhbGV4bmdAbWljcm9zb2Z0LmNvbT4NCj4gPj4gPiBTaWduZWQtb2Zm LWJ5OiBLZWl0aCBNYW5nZSA8a2VpdGgubWFuZ2VAbWljcm9zb2Z0LmNvbT4NCj4gPj4gPiBTaWdu ZWQtb2ZmLWJ5OiBLLiBZLiBTcmluaXZhc2FuIDxreXNAbWljcm9zb2Z0LmNvbT4NCj4gPj4gPiAt LS0NCj4gPj4gPiAgZHJpdmVycy9zY3NpL3N0b3J2c2NfZHJ2LmMgfCAgMTA5DQo+ID4+ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tDQo+ID4+ID4gIDEgZmlsZXMg Y2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pDQo+ID4+ID4NCj4gPj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N0b3J2c2NfZHJ2LmMgYi9kcml2ZXJzL3Njc2kv c3RvcnZzY19kcnYuYw0KPiA+PiA+IGluZGV4IDVmOWQxMzMuLmYyOTg3MWUgMTAwNjQ0DQo+ID4+ ID4gLS0tIGEvZHJpdmVycy9zY3NpL3N0b3J2c2NfZHJ2LmMNCj4gPj4gPiArKysgYi9kcml2ZXJz L3Njc2kvc3RvcnZzY19kcnYuYw0KPiA+PiA+IEBAIC01NiwxNCArNTYsMTggQEANCj4gPj4gPiAg ICogVjEgUkMgPiAyMDA4LzEvMzE6ICAyLjANCj4gPj4gPiAgICogV2luNzogNC4yDQo+ID4+ID4g ICAqIFdpbjg6IDUuMQ0KPiA+PiA+ICsgKiBXaW44LjE6IDYuMA0KPiA+PiA+ICsgKiBXaW4xMDog Ni4yDQo+ID4+ID4gICAqLw0KPiA+PiA+DQo+ID4+ID4gICNkZWZpbmUgVk1TVE9SX1BST1RPX1ZF UlNJT04oTUFKT1JfLCBNSU5PUl8pCSgoKChNQUpPUl8pDQo+ID4+ICYgMHhmZikgPDwgOCkgfCBc DQo+ID4+ID4gIAkJCQkJCSgoKE1JTk9SXykgJiAweGZmKSkpDQo+ID4+ID4NCj4gPj4gPiArI2Rl ZmluZSBWTVNUT1JfUFJPVE9fVkVSU0lPTl9XSU42DQo+ID4+IAlWTVNUT1JfUFJPVE9fVkVSU0lP TigyLCAwKQ0KPiA+PiA+ICAjZGVmaW5lIFZNU1RPUl9QUk9UT19WRVJTSU9OX1dJTjcNCj4gPj4g CVZNU1RPUl9QUk9UT19WRVJTSU9OKDQsIDIpDQo+ID4+ID4gICNkZWZpbmUgVk1TVE9SX1BST1RP X1ZFUlNJT05fV0lOOA0KPiA+PiAJVk1TVE9SX1BST1RPX1ZFUlNJT04oNSwgMSkNCj4gPj4gPiAt DQo+ID4+ID4gKyNkZWZpbmUgVk1TVE9SX1BST1RPX1ZFUlNJT05fV0lOOF8xDQo+ID4+IAlWTVNU T1JfUFJPVE9fVkVSU0lPTig2LCAwKQ0KPiA+PiA+ICsjZGVmaW5lIFZNU1RPUl9QUk9UT19WRVJT SU9OX1dJTjEwDQo+ID4+IAlWTVNUT1JfUFJPVE9fVkVSU0lPTig2LCAyKQ0KPiA+PiA+DQo+ID4+ ID4gIC8qICBQYWNrZXQgc3RydWN0dXJlIGRlc2NyaWJpbmcgdmlydHVhbCBzdG9yYWdlIHJlcXVl c3RzLiAqLw0KPiA+PiA+ICBlbnVtIHZzdG9yX3BhY2tldF9vcGVyYXRpb24gew0KPiA+PiA+IEBA IC0yMDUsNiArMjA5LDQ2IEBAIHN0cnVjdCB2bXNjc2lfcmVxdWVzdCB7DQo+ID4+ID4NCj4gPj4g Pg0KPiA+PiA+ICAvKg0KPiA+PiA+ICsgKiBUaGUgbGlzdCBvZiBzdG9yYWdlIHByb3RvY29scyBp biBvcmRlciBvZiBwcmVmZXJlbmNlLg0KPiA+PiA+ICsgKi8NCj4gPj4gPiArc3RydWN0IHZtc3Rv cl9wcm90b2NvbCB7DQo+ID4+ID4gKwlpbnQgcHJvdG9jb2xfdmVyc2lvbjsNCj4gPj4gPiArCWlu dCBzZW5zZV9idWZmZXJfc2l6ZTsNCj4gPj4gPiArCWludCB2bXNjc2lfc2l6ZV9kZWx0YTsNCj4g Pj4gPiArfTsNCj4gPj4gPiArDQo+ID4+ID4gKyNkZWZpbmUgVk1TVE9SX05VTV9QUk9UT0NPTFMg ICAgNQ0KPiA+Pg0KPiA+PiBjYW4ndCB5b3UganVzdCB1c2UgQVJSQVlfU0laRSgpIGhlcmUsIHNv IHlvdSBkb24ndCBoYXZlIHRvIHRvdWNoIHRoZQ0KPiA+PiBjb25zdGFudCBldmVyeSB0aW1lIGEg bmV3IHByb3RvY29sIGlzIGFwcGVuZGVkIHRvIHRoZSBsaXN0Pw0KPiA+DQo+ID4gQ2VydGFpbmx5 LiBUaGVzZSBwYXRjaGVzIGhhdmUgYmVlbiBmbG9hdGluZyBhcm91bmQgZm9yIG1vcmUgdGhhbiBh IG1vbnRoDQo+IG5vdyBhbmQgaWYgaXQgaXMgb2sNCj4gPiB3aXRoIHlvdSwgSSB3aWxsIHN1Ym1p dCBhIHBhdGNoIG9uIHRvcCBvZiB0aGlzIGN1cnJlbnQgc2VyaWVzIHRvIGFkZHJlc3MgdGhlDQo+ IGNvbmNlcm4geW91IGhhdmUgcmFpc2VkLg0KPiA+IEphbWVzLCBwbGVhc2UgbGV0IG1lIGtub3cu DQo+ID4NCj4gDQo+IE5vIG9iamVjdGlvbnMgZnJvbSBteSBzaWRlLCBidXQgaXQncyB1cCB0byBK YW1lcyB0byBkZWNpZGUgd2hhdCBhbmQgd2hlbg0KPiBoZSBwaWNrcyB1cCBwYXRjaGVzLg0KDQpK YW1lcywNCg0KSSBoYXZlIHNlbnQgYSBzZXBhcmF0ZSBwYXRjaCBvbiB0b3Agb2YgdGhlIHNldCBJ IHNlbnQgeWVzdGVyZGF5IHRoYXQgYWRkcmVzc2VzIEpvaGFubmVzJyBjb21tZW50cy4NCg0KUmVn YXJkcywNCg0KSy4gWQ0K -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web