[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC 25/29] vhu: enable = false on get_vring_base
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [RFC 25/29] vhu: enable = false on get_vring_base |
Date: |
Wed, 5 Jul 2017 00:59:25 +0300 |
On Wed, Jun 28, 2017 at 08:00:43PM +0100, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <address@hidden>
>
> When we receive a GET_VRING_BASE message set enable = false
> to stop any new received packets modifying the ring.
>
> Signed-off-by: Dr. David Alan Gilbert <address@hidden>
I think I already reviewed a similar patch.
Spec says:
Client must only process each ring when it is started.
IMHO the real fix is to fix client to check the started
flag before processing the ring.
> ---
> contrib/libvhost-user/libvhost-user.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/contrib/libvhost-user/libvhost-user.c
> b/contrib/libvhost-user/libvhost-user.c
> index ceddeac74f..d37052b7b0 100644
> --- a/contrib/libvhost-user/libvhost-user.c
> +++ b/contrib/libvhost-user/libvhost-user.c
> @@ -652,6 +652,7 @@ vu_get_vring_base_exec(VuDev *dev, VhostUserMsg *vmsg)
> vmsg->size = sizeof(vmsg->payload.state);
>
> dev->vq[index].started = false;
> + dev->vq[index].enable = false;
> if (dev->iface->queue_set_started) {
> dev->iface->queue_set_started(dev, index, false);
> }
> --
> 2.13.0