[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] vhost-user: start/stop all rings
From: |
Victor Kaplansky |
Subject: |
Re: [Qemu-devel] [PATCH v2] vhost-user: start/stop all rings |
Date: |
Fri, 20 Nov 2015 14:56:43 +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>
> ---
>
> 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