On Thu, Jan 2, 2020 at 1:43 AM Michael S. Tsirkin <m...@redhat.com> wrote:

> On Thu, Dec 26, 2019 at 06:36:49AM +0200, Yuri Benditovich wrote:
> > https://bugzilla.redhat.com/show_bug.cgi?id=1708480
> > If the control queue is not deleted together with TX/RX, it
> > later will be ignored in freeing cache resources and hot
> > unplug will not be completed.
> >
> > Signed-off-by: Yuri Benditovich <yuri.benditov...@daynix.com>
> > ---
> >  hw/net/virtio-net.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
> > index db3d7c38e6..f325440d01 100644
> > --- a/hw/net/virtio-net.c
> > +++ b/hw/net/virtio-net.c
> > @@ -3101,7 +3101,8 @@ static void
> virtio_net_device_unrealize(DeviceState *dev, Error **errp)
> >      for (i = 0; i < max_queues; i++) {
> >          virtio_net_del_queue(n, i);
> >      }
> > -
> > +    /* delete also control vq */
> > +    virtio_del_queue(vdev, max_queues * 2);
> >      qemu_announce_timer_del(&n->announce_timer, false);
> >      g_free(n->vqs);
> >      qemu_del_nic(n->nic);
>
> Do we need to limit this to when ctrl vq exists?
>

ctrl vq always exists (we _add_ it unconditionally).
we may suggest respective feature or not, but the initialized queue
structure present.


>
> > --
> > 2.17.1
>
>

Reply via email to