@@ -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;
}
@@ -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;
}
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(+)