[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3] vhost_net: cleanup recovery
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v3] vhost_net: cleanup recovery |
Date: |
Wed, 3 Sep 2014 14:26:54 +0300 |
On Wed, Sep 03, 2014 at 06:52:46PM +0800, Jason Wang wrote:
> On 09/03/2014 06:35 PM, Michael S. Tsirkin wrote:
> > commit aad4dce934649b3a398396fc2a76f215bb194ea4
> > vhost_net: start/stop guest notifiers properly
> >
> > changed the order of calls for guest notifiers,
> > but did not recover in the correct (reverse) order.
> > Fix it up.
> >
> > Cc: address@hidden
> > Cc: Andrey Korolyov <address@hidden>
> > Cc: Jason Wang <address@hidden>
> > Signed-off-by: Michael S. Tsirkin <address@hidden>
> > ---
> > hw/net/vhost_net.c | 12 +++++++++---
> > 1 file changed, 9 insertions(+), 3 deletions(-)
> >
> > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
> > index ba5d544..3819044 100644
> > --- a/hw/net/vhost_net.c
> > +++ b/hw/net/vhost_net.c
> > @@ -289,7 +289,7 @@ int vhost_net_start(VirtIODevice *dev, NetClientState
> > *ncs,
> > BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(dev)));
> > VirtioBusState *vbus = VIRTIO_BUS(qbus);
> > VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(vbus);
> > - int r, i = 0;
> > + int r, e, i;
> >
> > if (!vhost_net_device_endian_ok(dev)) {
> > error_report("vhost-net does not support cross-endian");
> > @@ -317,16 +317,22 @@ int vhost_net_start(VirtIODevice *dev, NetClientState
> > *ncs,
> > r = vhost_net_start_one(get_vhost_net(ncs[i].peer), dev);
> >
> > if (r < 0) {
> > - goto err;
> > + goto err_start;
> > }
> > }
> >
> > return 0;
> >
> > -err:
> > +err_start:
> > while (--i >= 0) {
> > vhost_net_stop_one(get_vhost_net(ncs[i].peer), dev);
> > }
> > + e = k->set_guest_notifiers(qbus->parent, total_queues * 2, false);
> > + if (e < 0) {
> > + fprintf(stderr, "vhost guest notifier cleanup failed: %d\n", e);
> > + fflush(stderr);
> > + }
> > +err:
> > return r;
> > }
> >
>
> Acked-by: Jason Wang <address@hidden>
OK I will just roll this up into the original patch.