On Mon, Nov 16, 2015 at 06:47:03PM +0200, Michael S. Tsirkin wrote: > We are currently only sending VRING_ENABLE message for the first ring, > that's wrong: we must start/stop them all. > > Reported-by: Victor Kaplansky <vict...@redhat.com> > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > --- > > Changes from v1: > typo fix > > hw/virtio/vhost-user.c | 17 +++++++++++------ > 1 file changed, 11 insertions(+), 6 deletions(-) > > diff --git a/hw/virtio/vhost-user.c b/hw/virtio/vhost-user.c > index 5bc6c45..71c3e16 100644 > --- a/hw/virtio/vhost-user.c > +++ b/hw/virtio/vhost-user.c > @@ -333,18 +333,23 @@ static int vhost_user_set_vring_base(struct vhost_dev > *dev, > > static int vhost_user_set_vring_enable(struct vhost_dev *dev, int enable) > { > - struct vhost_vring_state state = { > - .index = dev->vq_index, > - .num = enable, > - }; > + int i; > > if (!virtio_has_feature(dev->features, VHOST_USER_F_PROTOCOL_FEATURES)) { > return -1; > } > > - return vhost_set_vring(dev, VHOST_USER_SET_VRING_ENABLE, &state); > -} > + for (i = 0; i < dev->nvqs; ++i) { > + struct vhost_vring_state state = { > + .index = dev->vq_index + i, > + .num = enable, > + }; > + > + vhost_set_vring(dev, VHOST_USER_SET_VRING_ENABLE, &state);
Just noted that the patch make vhost_user_set_vring_enable() to ignore the return value of vhost_set_vring() > + } > > + return 0; > +} > > static int vhost_user_get_vring_base(struct vhost_dev *dev, > struct vhost_vring_state *ring) > -- > MST