Please consider using __vring_new_virtqueue in mic_virtio

From: Andy Lutomirski
Date: Tue Apr 26 2016 - 22:27:34 EST


mic_virtio has a big hack to set up a custom ring, like this:

/*
* To reassign the used ring here we are directly accessing
* struct vring_virtqueue which is a private data structure
* in virtio_ring.c. At the minimum, a BUILD_BUG_ON() in
* vring_new_virtqueue() would ensure that
* (&vq->vring == (struct vring *) (&vq->vq + 1));
*/
vr = (struct vring *)(vq + 1);
vr->used = used;\

I added a more flexible API __vring_new_virtqueue that you might be
able to use to clean this up in:

commit 2a2d1382fe9dccfce6f9c60a9c9fd2f0fe5bcf2b
Author: Andy Lutomirski <luto@xxxxxxxxxx>
Date: Tue Feb 2 21:46:37 2016 -0800

virtio: Add improved queue allocation API

Please consider either using it or trying to use
vring_create_virtqueue and updating it to fit your needs if
appropriate.

I didn't btry to do it myself because I don't have the hardware.

Thanks,
Andy