On Fri, 14 Jun 2019 17:31:18 +0800 elohi...@gmail.com wrote: > From: Xie Yongji <xieyon...@baidu.com> > > 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 <xieyon...@baidu.com> > ---
Reviewed-by: Greg Kurz <gr...@kaod.org> > hw/virtio/virtio.c | 6 ++---- > include/hw/virtio/virtio.h | 2 +- > 2 files changed, 3 insertions(+), 5 deletions(-) > > diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c > index 19062fbb96..473881e9ec 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 15d5366939..b189788cb2 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;