On Wed, Jun 28, 2017 at 08:00:43PM +0100, Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> > > 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 <dgilb...@redhat.com>
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