[PATCH RFC v3 11/12] virtio-net/virtio-blk: enable virtio 1.0

Cornelia Huck
2014-11-26T17:29:07Z

virtio-net (non-vhost) and virtio-blk have everything in place to support
virtio 1.0: let's enable the feature bit for them.

Note that VIRTIO_F_VERSION_1 is technically a transport feature; once
every device is ready for virtio 1.0, we can move this setting this
feature bit out of the individual devices.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
hw/block/virtio-blk.c | 4 ++++
hw/net/virtio-net.c | 4 ++++
2 files changed, 8 insertions(+)

diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index 6d86f60..3781f98 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -569,6 +569,10 @@ static uint32_t virtio_blk_get_features(VirtIODevice *vdev, unsigned int index,
{
VirtIOBlock *s = VIRTIO_BLK(vdev);

+ if (index == 1) {
+ features |= (1 << (VIRTIO_F_VERSION_1 - 32));
+ }
+
if (index > 0) {
return features;
}
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 1e214b5..fcfc95f 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -447,6 +447,10 @@ static uint32_t virtio_net_get_features(VirtIODevice *vdev, unsigned int index,
VirtIONet *n = VIRTIO_NET(vdev);
NetClientState *nc = qemu_get_queue(n->nic);

+ if (index == 1 && !get_vhost_net(nc->peer)) {
+ features |= (1 << (VIRTIO_F_VERSION_1 - 32));
+ }
+
if (index > 0) {
return features;
}
--
1.7.9.5