]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/virtio/virtio_ring.c
virtio-ring: move queue_index to vring_virtqueue
[karo-tx-linux.git] / drivers / virtio / virtio_ring.c
index 5aa43c3392a2a061ed9fb35f3caa53605690e7fd..e639584b2dbd1c24e36017db1978009b73f8e33f 100644 (file)
@@ -106,6 +106,9 @@ struct vring_virtqueue
        /* How to notify other side. FIXME: commonalize hcalls! */
        void (*notify)(struct virtqueue *vq);
 
+       /* Index of the queue */
+       int queue_index;
+
 #ifdef DEBUG
        /* They're supposed to lock for us. */
        unsigned int in_use;
@@ -171,6 +174,13 @@ static int vring_add_indirect(struct vring_virtqueue *vq,
        return head;
 }
 
+int virtqueue_get_queue_index(struct virtqueue *_vq)
+{
+       struct vring_virtqueue *vq = to_vvq(_vq);
+       return vq->queue_index;
+}
+EXPORT_SYMBOL_GPL(virtqueue_get_queue_index);
+
 /**
  * virtqueue_add_buf - expose buffer to other end
  * @vq: the struct virtqueue we're talking about.
@@ -616,7 +626,8 @@ irqreturn_t vring_interrupt(int irq, void *_vq)
 }
 EXPORT_SYMBOL_GPL(vring_interrupt);
 
-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,
@@ -647,6 +658,7 @@ struct virtqueue *vring_new_virtqueue(unsigned int num,
        vq->broken = false;
        vq->last_used_idx = 0;
        vq->num_added = 0;
+       vq->queue_index = index;
        list_add_tail(&vq->vq.list, &vdev->vqs);
 #ifdef DEBUG
        vq->in_use = false;