]> Pileus Git - ~andy/linux/commitdiff
tools/virtio: fix build for 3.8
authorMichael S. Tsirkin <mst@redhat.com>
Mon, 18 Mar 2013 02:52:18 +0000 (13:22 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 20 Mar 2013 03:30:41 +0000 (14:00 +1030)
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
drivers/vhost/test.c
tools/virtio/Makefile
tools/virtio/linux/virtio.h
tools/virtio/virtio_test.c

index 91d6f060aade3d4fafdfe0b0bf9bcae45b62b0ac..329d3021d059b3c5f543585eebd884f15ff9ad61 100644 (file)
@@ -275,7 +275,9 @@ static long vhost_test_ioctl(struct file *f, unsigned int ioctl,
                return vhost_test_reset_owner(n);
        default:
                mutex_lock(&n->dev.mutex);
-               r = vhost_dev_ioctl(&n->dev, ioctl, arg);
+               r = vhost_dev_ioctl(&n->dev, ioctl, argp);
+                if (r == -ENOIOCTLCMD)
+                        r = vhost_vring_ioctl(&n->dev, ioctl, argp);
                vhost_test_flush(n);
                mutex_unlock(&n->dev.mutex);
                return r;
index d1d442ed106aa057b5bcc0ff63afa1b27f5c80cc..b48c4329e6445a89583126b509fe45b0874492a3 100644 (file)
@@ -1,7 +1,7 @@
 all: test mod
 test: virtio_test
 virtio_test: virtio_ring.o virtio_test.o
-CFLAGS += -g -O2 -Wall -I. -I ../../usr/include/ -Wno-pointer-sign -fno-strict-overflow  -MMD
+CFLAGS += -g -O2 -Wall -I. -I ../../usr/include/ -Wno-pointer-sign -fno-strict-overflow -fno-strict-aliasing -fno-common -MMD
 vpath %.c ../../drivers/virtio
 mod:
        ${MAKE} -C `pwd`/../.. M=`pwd`/vhost_test
index 81847dd08bd0993edbe4e3291db6efa32bd8a824..390c4cb3b01807bacaf597c9e5f70c9727c221c8 100644 (file)
@@ -85,6 +85,8 @@ typedef __u16 u16;
 typedef enum {
        GFP_KERNEL,
        GFP_ATOMIC,
+       __GFP_HIGHMEM,
+       __GFP_HIGH
 } gfp_t;
 typedef enum {
        IRQ_NONE,
@@ -163,6 +165,8 @@ struct virtqueue {
        void (*callback)(struct virtqueue *vq);
        const char *name;
        struct virtio_device *vdev;
+        unsigned int index;
+        unsigned int num_free;
        void *priv;
 };
 
@@ -206,7 +210,8 @@ bool virtqueue_enable_cb(struct virtqueue *vq);
 bool virtqueue_enable_cb_delayed(struct virtqueue *vq);
 
 void *virtqueue_detach_unused_buf(struct virtqueue *vq);
-struct virtqueue *vring_new_virtqueue(unsigned int num,
+struct virtqueue *vring_new_virtqueue(unsigned int index,
+                                     unsigned int num,
                                      unsigned int vring_align,
                                      struct virtio_device *vdev,
                                      bool weak_barriers,
index fcc9aa25fd08030856722df41f9322a924582423..faf3f0c9d71f63557c94a566adf883e96e32ceba 100644 (file)
@@ -92,7 +92,8 @@ static void vq_info_add(struct vdev_info *dev, int num)
        assert(r >= 0);
        memset(info->ring, 0, vring_size(num, 4096));
        vring_init(&info->vring, num, info->ring, 4096);
-       info->vq = vring_new_virtqueue(info->vring.num, 4096, &dev->vdev,
+       info->vq = vring_new_virtqueue(info->idx,
+                                      info->vring.num, 4096, &dev->vdev,
                                       true, info->ring,
                                       vq_notify, vq_callback, "test");
        assert(info->vq);