diff options
author | Ladi Prosek <lprosek@redhat.com> | 2016-12-16 14:07:08 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2017-01-22 13:22:19 +0000 |
commit | fba3b39900af52e695d59bc34f28bb8d22526ddb (patch) | |
tree | 6b2b6062085e52e545306937e48fcf6af5774cca /src/include/ipxe/virtio-pci.h | |
parent | b782a56be725569fb68f92b81a01903d1652c5b0 (diff) | |
download | ipxe-fba3b39900af52e695d59bc34f28bb8d22526ddb.tar.gz |
[virtio] Remove queue size limit in legacy virtio
Virtio 0.9 implementation was limited to the maximum virtqueue size of
MAX_QUEUE_NUM and the virtio-net driver would fail to initialize on hosts
exceeding this limit.
This commit lifts the restriction by allocating the queue memory based on
the actual queue size instead of using a fixed maximum. Note that virtio
1.0 still uses the MAX_QUEUE_NUM constant to cap the size (unfortunately
this functionality is not available in virtio 0.9).
Signed-off-by: Ladi Prosek <lprosek@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe/virtio-pci.h')
-rw-r--r-- | src/include/ipxe/virtio-pci.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/include/ipxe/virtio-pci.h b/src/include/ipxe/virtio-pci.h index f3c9b17ca..f3074f14d 100644 --- a/src/include/ipxe/virtio-pci.h +++ b/src/include/ipxe/virtio-pci.h @@ -196,9 +196,11 @@ static inline void vp_del_vq(unsigned int ioaddr, int queue_index) struct vring_virtqueue; +void vp_free_vq(struct vring_virtqueue *vq); int vp_find_vq(unsigned int ioaddr, int queue_index, struct vring_virtqueue *vq); + /* Virtio 1.0 I/O routines abstract away the three possible HW access * mechanisms - memory, port I/O, and PCI cfg space access. Also built-in * are endianness conversions - to LE on write and from LE on read. */ |