[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] vhost-user: start/stop all rings
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v2] vhost-user: start/stop all rings |
Date: |
Mon, 16 Nov 2015 19:21:26 +0200 |
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 <address@hidden>
> Signed-off-by: Michael S. Tsirkin <address@hidden>
Note: this is on top of my tree.
> ---
>
> 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);
> + }
>
> + return 0;
> +}
>
> static int vhost_user_get_vring_base(struct vhost_dev *dev,
> struct vhost_vring_state *ring)
> --
> MST