All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] vhost-scsi: Check for tcm_vhost ABI version
@ 2012-07-24  1:30 ` Nicholas A. Bellinger
  0 siblings, 0 replies; 7+ messages in thread
From: Nicholas A. Bellinger @ 2012-07-24  1:30 UTC (permalink / raw)
  To: target-devel
  Cc: Jens Axboe, Stefan Hajnoczi, kvm-devel, Michael S. Tsirkin,
	qemu-devel, Zhi Yong Wu, Anthony Liguori, Paolo Bonzini, lf-virt,
	Christoph Hellwig

From: Nicholas Bellinger <nab@linux-iscsi.org>

Hi Anthony,

Here are the two patches against Zhi's vhost-scsi tree to check for
a supported version (VHOST_SCSI_ABI_VERSION=1) that's now exposed via
the tcm_vhost ioctl.

Please have a look and let me know if this is what you had in mind.

Thanks!

Nicholas Bellinger (2):
  vhost-scsi: Rename vhost_vring_target -> vhost_scsi_target
  vhost-scsi: Add support for VHOST_SCSI_GET_ABI_VERSION ioctl

 hw/vhost-scsi.c |   21 +++++++++++++++++++--
 hw/vhost-scsi.h |   17 ++++++++++++++---
 2 files changed, 33 insertions(+), 5 deletions(-)

-- 
1.7.2.5

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 0/2] vhost-scsi: Check for tcm_vhost ABI version
@ 2012-07-24  1:30 ` Nicholas A. Bellinger
  0 siblings, 0 replies; 7+ messages in thread
From: Nicholas A. Bellinger @ 2012-07-24  1:30 UTC (permalink / raw)
  To: target-devel
  Cc: Jens Axboe, Stefan Hajnoczi, kvm-devel, Michael S. Tsirkin,
	qemu-devel, Nicholas Bellinger, Zhi Yong Wu, Anthony Liguori,
	Hannes Reinecke, Paolo Bonzini, lf-virt, Christoph Hellwig

From: Nicholas Bellinger <nab@linux-iscsi.org>

Hi Anthony,

Here are the two patches against Zhi's vhost-scsi tree to check for
a supported version (VHOST_SCSI_ABI_VERSION=1) that's now exposed via
the tcm_vhost ioctl.

Please have a look and let me know if this is what you had in mind.

Thanks!

Nicholas Bellinger (2):
  vhost-scsi: Rename vhost_vring_target -> vhost_scsi_target
  vhost-scsi: Add support for VHOST_SCSI_GET_ABI_VERSION ioctl

 hw/vhost-scsi.c |   21 +++++++++++++++++++--
 hw/vhost-scsi.h |   17 ++++++++++++++---
 2 files changed, 33 insertions(+), 5 deletions(-)

-- 
1.7.2.5

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] vhost-scsi: Rename vhost_vring_target -> vhost_scsi_target
  2012-07-24  1:30 ` [Qemu-devel] " Nicholas A. Bellinger
@ 2012-07-24  1:30   ` Nicholas A. Bellinger
  -1 siblings, 0 replies; 7+ messages in thread
From: Nicholas A. Bellinger @ 2012-07-24  1:30 UTC (permalink / raw)
  To: target-devel
  Cc: Jens Axboe, Anthony Liguori, Stefan Hajnoczi, kvm-devel,
	Michael S. Tsirkin, qemu-devel, Zhi Yong Wu, Anthony Liguori,
	Paolo Bonzini, lf-virt, Christoph Hellwig

From: Nicholas Bellinger <nab@linux-iscsi.org>

Rename the main IOCTL structure to vhost_scsi_target so that
it makes a little more sense than vhost_vring_target.

As requested by MST.

Reported-by: Michael S. Tsirkin <mst@redhat.com>
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
---
 hw/vhost-scsi.c |    4 ++--
 hw/vhost-scsi.h |    6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/hw/vhost-scsi.c b/hw/vhost-scsi.c
index 3e3378a..3e9fa0e 100644
--- a/hw/vhost-scsi.c
+++ b/hw/vhost-scsi.c
@@ -49,7 +49,7 @@ const char *vhost_scsi_get_id(VHostSCSI *vs)
 int vhost_scsi_start(VHostSCSI *vs, VirtIODevice *vdev)
 {
     int ret;
-    struct vhost_vring_target backend;
+    struct vhost_scsi_target backend;
 
     if (!vhost_dev_query(&vs->dev, vdev)) {
         return -ENOTSUP;
@@ -86,7 +86,7 @@ void vhost_scsi_stop(VHostSCSI *vs, VirtIODevice *vdev)
     fprintf(stderr, "vhost_scsi_stop\n");
 
     int ret;
-    struct vhost_vring_target backend;
+    struct vhost_scsi_target backend;
 
     pstrcpy((char *)backend.vhost_wwpn, sizeof(backend.vhost_wwpn), vs->wwpn);
     backend.vhost_tpgt = vs->tpgt;
diff --git a/hw/vhost-scsi.h b/hw/vhost-scsi.h
index 84e9097..8ce974a 100644
--- a/hw/vhost-scsi.h
+++ b/hw/vhost-scsi.h
@@ -19,14 +19,14 @@
 
 /* TODO #include <linux/vhost.h> properly */
 /* For VHOST_SCSI_SET_ENDPOINT/VHOST_SCSI_CLEAR_ENDPOINT ioctl */
-struct vhost_vring_target {
+struct vhost_scsi_target {
     unsigned char vhost_wwpn[224];
     unsigned short vhost_tpgt;
 };
 
 #define VHOST_VIRTIO 0xAF
-#define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_vring_target)
-#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_vring_target)
+#define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_scsi_target)
+#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target)
 
 VHostSCSI *find_vhost_scsi(const char *id);
 const char *vhost_scsi_get_id(VHostSCSI *vs);
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 1/2] vhost-scsi: Rename vhost_vring_target -> vhost_scsi_target
@ 2012-07-24  1:30   ` Nicholas A. Bellinger
  0 siblings, 0 replies; 7+ messages in thread
From: Nicholas A. Bellinger @ 2012-07-24  1:30 UTC (permalink / raw)
  To: target-devel
  Cc: Jens Axboe, Anthony Liguori, Stefan Hajnoczi, kvm-devel,
	Michael S. Tsirkin, qemu-devel, Nicholas Bellinger, Zhi Yong Wu,
	Anthony Liguori, Zhi Yong Wu, Hannes Reinecke, Paolo Bonzini,
	lf-virt, Christoph Hellwig

From: Nicholas Bellinger <nab@linux-iscsi.org>

Rename the main IOCTL structure to vhost_scsi_target so that
it makes a little more sense than vhost_vring_target.

As requested by MST.

Reported-by: Michael S. Tsirkin <mst@redhat.com>
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
---
 hw/vhost-scsi.c |    4 ++--
 hw/vhost-scsi.h |    6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/hw/vhost-scsi.c b/hw/vhost-scsi.c
index 3e3378a..3e9fa0e 100644
--- a/hw/vhost-scsi.c
+++ b/hw/vhost-scsi.c
@@ -49,7 +49,7 @@ const char *vhost_scsi_get_id(VHostSCSI *vs)
 int vhost_scsi_start(VHostSCSI *vs, VirtIODevice *vdev)
 {
     int ret;
-    struct vhost_vring_target backend;
+    struct vhost_scsi_target backend;
 
     if (!vhost_dev_query(&vs->dev, vdev)) {
         return -ENOTSUP;
@@ -86,7 +86,7 @@ void vhost_scsi_stop(VHostSCSI *vs, VirtIODevice *vdev)
     fprintf(stderr, "vhost_scsi_stop\n");
 
     int ret;
-    struct vhost_vring_target backend;
+    struct vhost_scsi_target backend;
 
     pstrcpy((char *)backend.vhost_wwpn, sizeof(backend.vhost_wwpn), vs->wwpn);
     backend.vhost_tpgt = vs->tpgt;
diff --git a/hw/vhost-scsi.h b/hw/vhost-scsi.h
index 84e9097..8ce974a 100644
--- a/hw/vhost-scsi.h
+++ b/hw/vhost-scsi.h
@@ -19,14 +19,14 @@
 
 /* TODO #include <linux/vhost.h> properly */
 /* For VHOST_SCSI_SET_ENDPOINT/VHOST_SCSI_CLEAR_ENDPOINT ioctl */
-struct vhost_vring_target {
+struct vhost_scsi_target {
     unsigned char vhost_wwpn[224];
     unsigned short vhost_tpgt;
 };
 
 #define VHOST_VIRTIO 0xAF
-#define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_vring_target)
-#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_vring_target)
+#define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_scsi_target)
+#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target)
 
 VHostSCSI *find_vhost_scsi(const char *id);
 const char *vhost_scsi_get_id(VHostSCSI *vs);
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] vhost-scsi: Add support for VHOST_SCSI_GET_ABI_VERSION ioctl
  2012-07-24  1:30 ` [Qemu-devel] " Nicholas A. Bellinger
@ 2012-07-24  1:30   ` Nicholas A. Bellinger
  -1 siblings, 0 replies; 7+ messages in thread
From: Nicholas A. Bellinger @ 2012-07-24  1:30 UTC (permalink / raw)
  To: target-devel
  Cc: lf-virt, kvm-devel, qemu-devel, Stefan Hajnoczi, Zhi Yong Wu,
	Anthony Liguori, Paolo Bonzini, Michael S. Tsirkin,
	Christoph Hellwig, Jens Axboe, Hannes Reinecke,
	Nicholas Bellinger, Zhi Yong Wu

From: Nicholas Bellinger <nab@linux-iscsi.org>

This patch adds support in vhost-scsi QEMU userspace code to check the
running tcm_vhost ABI version using VHOST_SCSI_GET_ABI_VERSION.

This series selects VHOST_SCSI_ABI_VERSION=1 for current code, and
requires the pre-requsite tcm_vhost patch to expose an ABI version number.

This patch patch will fail to initialize vhost_scsi_start() unless both
vhost-scsi <-> tcm_vhost agree on VHOST_SCSI_ABI_VERSION=1.

Reported-by: Anthony Liguori <aliguori@us.ibm.com>
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
---
 hw/vhost-scsi.c |   17 +++++++++++++++++
 hw/vhost-scsi.h |   11 +++++++++++
 2 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/hw/vhost-scsi.c b/hw/vhost-scsi.c
index 3e9fa0e..9ab314c 100644
--- a/hw/vhost-scsi.c
+++ b/hw/vhost-scsi.c
@@ -68,6 +68,23 @@ int vhost_scsi_start(VHostSCSI *vs, VirtIODevice *vdev)
         return ret;
     }
 
+    memset(&backend, 0, sizeof(backend));
+    ret = ioctl(vs->dev.control, VHOST_SCSI_GET_ABI_VERSION, &backend);
+    if (ret < 0) {
+        ret = -errno;
+        vhost_dev_stop(&vs->dev, vdev);
+        return ret;
+    }
+    if (backend.abi_version > VHOST_SCSI_ABI_VERSION) {
+        fprintf(stderr, "The running tcm_vhost kernel abi_version: %d is greater"
+		" than vhost_scsi userspace supports: %d\n", backend.abi_version,
+		VHOST_SCSI_ABI_VERSION);
+        ret = -ENOSYS;
+        vhost_dev_stop(&vs->dev, vdev);
+        return ret;
+    }
+    printf("Using TCM_Vhost ABI version: %d\n", backend.abi_version);
+
     pstrcpy((char *)backend.vhost_wwpn, sizeof(backend.vhost_wwpn), vs->wwpn);
     backend.vhost_tpgt = vs->tpgt;
     ret = ioctl(vs->dev.control, VHOST_SCSI_SET_ENDPOINT, &backend);
diff --git a/hw/vhost-scsi.h b/hw/vhost-scsi.h
index 8ce974a..393fe39 100644
--- a/hw/vhost-scsi.h
+++ b/hw/vhost-scsi.h
@@ -17,9 +17,19 @@
 #include "qemu-common.h"
 #include "qemu-option.h"
 
+/*
+ * Used by QEMU userspace to ensure a consistent vhost-scsi ABI.
+ *
+ * ABI Rev 0: All pre 2012 revisions used by prototype out-of-tree code
+ * ABI Rev 1: 2012 version for v3.6 kernel merge candiate
+ */
+
+#define VHOST_SCSI_ABI_VERSION	1
+
 /* TODO #include <linux/vhost.h> properly */
 /* For VHOST_SCSI_SET_ENDPOINT/VHOST_SCSI_CLEAR_ENDPOINT ioctl */
 struct vhost_scsi_target {
+    int abi_version;
     unsigned char vhost_wwpn[224];
     unsigned short vhost_tpgt;
 };
@@ -27,6 +37,7 @@ struct vhost_scsi_target {
 #define VHOST_VIRTIO 0xAF
 #define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_scsi_target)
 #define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target)
+#define VHOST_SCSI_GET_ABI_VERSION _IOW(VHOST_VIRTIO, 0x42, struct vhost_scsi_target)
 
 VHostSCSI *find_vhost_scsi(const char *id);
 const char *vhost_scsi_get_id(VHostSCSI *vs);
-- 
1.7.2.5


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 2/2] vhost-scsi: Add support for VHOST_SCSI_GET_ABI_VERSION ioctl
@ 2012-07-24  1:30   ` Nicholas A. Bellinger
  0 siblings, 0 replies; 7+ messages in thread
From: Nicholas A. Bellinger @ 2012-07-24  1:30 UTC (permalink / raw)
  To: target-devel
  Cc: Jens Axboe, Stefan Hajnoczi, kvm-devel, Michael S. Tsirkin,
	qemu-devel, Nicholas Bellinger, Zhi Yong Wu, Anthony Liguori,
	Zhi Yong Wu, Hannes Reinecke, Paolo Bonzini, lf-virt,
	Christoph Hellwig

From: Nicholas Bellinger <nab@linux-iscsi.org>

This patch adds support in vhost-scsi QEMU userspace code to check the
running tcm_vhost ABI version using VHOST_SCSI_GET_ABI_VERSION.

This series selects VHOST_SCSI_ABI_VERSION=1 for current code, and
requires the pre-requsite tcm_vhost patch to expose an ABI version number.

This patch patch will fail to initialize vhost_scsi_start() unless both
vhost-scsi <-> tcm_vhost agree on VHOST_SCSI_ABI_VERSION=1.

Reported-by: Anthony Liguori <aliguori@us.ibm.com>
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
---
 hw/vhost-scsi.c |   17 +++++++++++++++++
 hw/vhost-scsi.h |   11 +++++++++++
 2 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/hw/vhost-scsi.c b/hw/vhost-scsi.c
index 3e9fa0e..9ab314c 100644
--- a/hw/vhost-scsi.c
+++ b/hw/vhost-scsi.c
@@ -68,6 +68,23 @@ int vhost_scsi_start(VHostSCSI *vs, VirtIODevice *vdev)
         return ret;
     }
 
+    memset(&backend, 0, sizeof(backend));
+    ret = ioctl(vs->dev.control, VHOST_SCSI_GET_ABI_VERSION, &backend);
+    if (ret < 0) {
+        ret = -errno;
+        vhost_dev_stop(&vs->dev, vdev);
+        return ret;
+    }
+    if (backend.abi_version > VHOST_SCSI_ABI_VERSION) {
+        fprintf(stderr, "The running tcm_vhost kernel abi_version: %d is greater"
+		" than vhost_scsi userspace supports: %d\n", backend.abi_version,
+		VHOST_SCSI_ABI_VERSION);
+        ret = -ENOSYS;
+        vhost_dev_stop(&vs->dev, vdev);
+        return ret;
+    }
+    printf("Using TCM_Vhost ABI version: %d\n", backend.abi_version);
+
     pstrcpy((char *)backend.vhost_wwpn, sizeof(backend.vhost_wwpn), vs->wwpn);
     backend.vhost_tpgt = vs->tpgt;
     ret = ioctl(vs->dev.control, VHOST_SCSI_SET_ENDPOINT, &backend);
diff --git a/hw/vhost-scsi.h b/hw/vhost-scsi.h
index 8ce974a..393fe39 100644
--- a/hw/vhost-scsi.h
+++ b/hw/vhost-scsi.h
@@ -17,9 +17,19 @@
 #include "qemu-common.h"
 #include "qemu-option.h"
 
+/*
+ * Used by QEMU userspace to ensure a consistent vhost-scsi ABI.
+ *
+ * ABI Rev 0: All pre 2012 revisions used by prototype out-of-tree code
+ * ABI Rev 1: 2012 version for v3.6 kernel merge candiate
+ */
+
+#define VHOST_SCSI_ABI_VERSION	1
+
 /* TODO #include <linux/vhost.h> properly */
 /* For VHOST_SCSI_SET_ENDPOINT/VHOST_SCSI_CLEAR_ENDPOINT ioctl */
 struct vhost_scsi_target {
+    int abi_version;
     unsigned char vhost_wwpn[224];
     unsigned short vhost_tpgt;
 };
@@ -27,6 +37,7 @@ struct vhost_scsi_target {
 #define VHOST_VIRTIO 0xAF
 #define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_scsi_target)
 #define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target)
+#define VHOST_SCSI_GET_ABI_VERSION _IOW(VHOST_VIRTIO, 0x42, struct vhost_scsi_target)
 
 VHostSCSI *find_vhost_scsi(const char *id);
 const char *vhost_scsi_get_id(VHostSCSI *vs);
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] vhost-scsi: Add support for VHOST_SCSI_GET_ABI_VERSION ioctl
  2012-07-24  1:30 ` [Qemu-devel] " Nicholas A. Bellinger
  (?)
  (?)
@ 2012-07-24  1:30 ` Nicholas A. Bellinger
  -1 siblings, 0 replies; 7+ messages in thread
From: Nicholas A. Bellinger @ 2012-07-24  1:30 UTC (permalink / raw)
  To: target-devel
  Cc: Jens Axboe, Stefan Hajnoczi, kvm-devel, Michael S. Tsirkin,
	qemu-devel, Zhi Yong Wu, Anthony Liguori, Paolo Bonzini, lf-virt,
	Christoph Hellwig

From: Nicholas Bellinger <nab@linux-iscsi.org>

This patch adds support in vhost-scsi QEMU userspace code to check the
running tcm_vhost ABI version using VHOST_SCSI_GET_ABI_VERSION.

This series selects VHOST_SCSI_ABI_VERSION=1 for current code, and
requires the pre-requsite tcm_vhost patch to expose an ABI version number.

This patch patch will fail to initialize vhost_scsi_start() unless both
vhost-scsi <-> tcm_vhost agree on VHOST_SCSI_ABI_VERSION=1.

Reported-by: Anthony Liguori <aliguori@us.ibm.com>
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
---
 hw/vhost-scsi.c |   17 +++++++++++++++++
 hw/vhost-scsi.h |   11 +++++++++++
 2 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/hw/vhost-scsi.c b/hw/vhost-scsi.c
index 3e9fa0e..9ab314c 100644
--- a/hw/vhost-scsi.c
+++ b/hw/vhost-scsi.c
@@ -68,6 +68,23 @@ int vhost_scsi_start(VHostSCSI *vs, VirtIODevice *vdev)
         return ret;
     }
 
+    memset(&backend, 0, sizeof(backend));
+    ret = ioctl(vs->dev.control, VHOST_SCSI_GET_ABI_VERSION, &backend);
+    if (ret < 0) {
+        ret = -errno;
+        vhost_dev_stop(&vs->dev, vdev);
+        return ret;
+    }
+    if (backend.abi_version > VHOST_SCSI_ABI_VERSION) {
+        fprintf(stderr, "The running tcm_vhost kernel abi_version: %d is greater"
+		" than vhost_scsi userspace supports: %d\n", backend.abi_version,
+		VHOST_SCSI_ABI_VERSION);
+        ret = -ENOSYS;
+        vhost_dev_stop(&vs->dev, vdev);
+        return ret;
+    }
+    printf("Using TCM_Vhost ABI version: %d\n", backend.abi_version);
+
     pstrcpy((char *)backend.vhost_wwpn, sizeof(backend.vhost_wwpn), vs->wwpn);
     backend.vhost_tpgt = vs->tpgt;
     ret = ioctl(vs->dev.control, VHOST_SCSI_SET_ENDPOINT, &backend);
diff --git a/hw/vhost-scsi.h b/hw/vhost-scsi.h
index 8ce974a..393fe39 100644
--- a/hw/vhost-scsi.h
+++ b/hw/vhost-scsi.h
@@ -17,9 +17,19 @@
 #include "qemu-common.h"
 #include "qemu-option.h"
 
+/*
+ * Used by QEMU userspace to ensure a consistent vhost-scsi ABI.
+ *
+ * ABI Rev 0: All pre 2012 revisions used by prototype out-of-tree code
+ * ABI Rev 1: 2012 version for v3.6 kernel merge candiate
+ */
+
+#define VHOST_SCSI_ABI_VERSION	1
+
 /* TODO #include <linux/vhost.h> properly */
 /* For VHOST_SCSI_SET_ENDPOINT/VHOST_SCSI_CLEAR_ENDPOINT ioctl */
 struct vhost_scsi_target {
+    int abi_version;
     unsigned char vhost_wwpn[224];
     unsigned short vhost_tpgt;
 };
@@ -27,6 +37,7 @@ struct vhost_scsi_target {
 #define VHOST_VIRTIO 0xAF
 #define VHOST_SCSI_SET_ENDPOINT _IOW(VHOST_VIRTIO, 0x40, struct vhost_scsi_target)
 #define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target)
+#define VHOST_SCSI_GET_ABI_VERSION _IOW(VHOST_VIRTIO, 0x42, struct vhost_scsi_target)
 
 VHostSCSI *find_vhost_scsi(const char *id);
 const char *vhost_scsi_get_id(VHostSCSI *vs);
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-07-24  1:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-24  1:30 [PATCH 0/2] vhost-scsi: Check for tcm_vhost ABI version Nicholas A. Bellinger
2012-07-24  1:30 ` [Qemu-devel] " Nicholas A. Bellinger
2012-07-24  1:30 ` [PATCH 1/2] vhost-scsi: Rename vhost_vring_target -> vhost_scsi_target Nicholas A. Bellinger
2012-07-24  1:30   ` [Qemu-devel] " Nicholas A. Bellinger
2012-07-24  1:30 ` [PATCH 2/2] vhost-scsi: Add support for VHOST_SCSI_GET_ABI_VERSION ioctl Nicholas A. Bellinger
2012-07-24  1:30 ` Nicholas A. Bellinger
2012-07-24  1:30   ` [Qemu-devel] " Nicholas A. Bellinger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.