aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXie Yongji <xieyongji@baidu.com>2019-06-26 10:31:27 +0800
committerMichael S. Tsirkin <mst@redhat.com>2019-07-04 17:00:32 -0400
commit7abccd088c9ef4c66dc891ff634a1f381ed4b2a8 (patch)
tree9047cf91c553204270c8600155744387b9037508
parente57f2c31b6529d990eeafacdb19b9eb1904c23c6 (diff)
downloadqemu-7abccd088c9ef4c66dc891ff634a1f381ed4b2a8.zip
qemu-7abccd088c9ef4c66dc891ff634a1f381ed4b2a8.tar.gz
qemu-7abccd088c9ef4c66dc891ff634a1f381ed4b2a8.tar.bz2
virtio: Set "start_on_kick" for legacy devices
Besides virtio 1.0 transitional devices, we should also set "start_on_kick" flag for legacy devices (virtio 0.9). Signed-off-by: Xie Yongji <xieyongji@baidu.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <20190626023130.31315-3-xieyongji@baidu.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--hw/virtio/virtio.c6
-rw-r--r--include/hw/virtio/virtio.h2
2 files changed, 3 insertions, 5 deletions
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index c9a6ca0..f7504d1 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -1212,8 +1212,7 @@ void virtio_reset(void *opaque)
k->reset(vdev);
}
- vdev->start_on_kick = (virtio_host_has_feature(vdev, VIRTIO_F_VERSION_1) &&
- !virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1));
+ vdev->start_on_kick = !virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1);
vdev->started = false;
vdev->broken = false;
vdev->guest_features = 0;
@@ -2325,8 +2324,7 @@ void virtio_init(VirtIODevice *vdev, const char *name,
g_malloc0(sizeof(*vdev->vector_queues) * nvectors);
}
- vdev->start_on_kick = (virtio_host_has_feature(vdev, VIRTIO_F_VERSION_1) &&
- !virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1));
+ vdev->start_on_kick = !virtio_vdev_has_feature(vdev, VIRTIO_F_VERSION_1);
vdev->started = false;
vdev->device_id = device_id;
vdev->status = 0;
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
index 15d5366..b189788 100644
--- a/include/hw/virtio/virtio.h
+++ b/include/hw/virtio/virtio.h
@@ -107,7 +107,7 @@ struct VirtIODevice
bool broken; /* device in invalid state, needs reset */
bool use_started;
bool started;
- bool start_on_kick; /* virtio 1.0 transitional devices support that */
+ bool start_on_kick; /* when virtio 1.0 feature has not been negotiated */
VMChangeStateEntry *vmstate;
char *bus_name;
uint8_t device_endian;