| Message ID | 20170223085130.19954-1-pbonzini@redhat.com |
|---|---|
| State | New |
| Headers | show |
On 02/23/17 09:51, Paolo Bonzini wrote: > If the vring has not been set up, there is nothing in the virtqueue. > virtio_queue_host_notifier_aio_poll calls virtio_queue_empty even in > this case; we have to filter it out just like virtio_queue_notify_aio_vq. > > Reported-by: Gerd Hoffmann <kraxel@redhat.com> > Tested-by: Alex Williamson <alex.williamson@redhat.com> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > hw/virtio/virtio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c > index 23483c7..e487e36 100644 > --- a/hw/virtio/virtio.c > +++ b/hw/virtio/virtio.c > @@ -2291,7 +2291,7 @@ static bool virtio_queue_host_notifier_aio_poll(void *opaque) > VirtQueue *vq = container_of(n, VirtQueue, host_notifier); > bool progress; > > - if (virtio_queue_empty(vq)) { > + if (!vq->vring.desc || virtio_queue_empty(vq)) { > return false; > } > > Tested-by: Laszlo Ersek <lersek@redhat.com> Thanks! Laszlo
On Thu, 23 Feb 2017 09:51:30 +0100 Paolo Bonzini <pbonzini@redhat.com> wrote: > If the vring has not been set up, there is nothing in the virtqueue. > virtio_queue_host_notifier_aio_poll calls virtio_queue_empty even in > this case; we have to filter it out just like virtio_queue_notify_aio_vq. > > Reported-by: Gerd Hoffmann <kraxel@redhat.com> > Tested-by: Alex Williamson <alex.williamson@redhat.com> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > hw/virtio/virtio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c > index 23483c7..e487e36 100644 > --- a/hw/virtio/virtio.c > +++ b/hw/virtio/virtio.c > @@ -2291,7 +2291,7 @@ static bool virtio_queue_host_notifier_aio_poll(void *opaque) > VirtQueue *vq = container_of(n, VirtQueue, host_notifier); > bool progress; > > - if (virtio_queue_empty(vq)) { > + if (!vq->vring.desc || virtio_queue_empty(vq)) { > return false; > } > Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com> ...although it is not sufficient...
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 23483c7..e487e36 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2291,7 +2291,7 @@ static bool virtio_queue_host_notifier_aio_poll(void *opaque) VirtQueue *vq = container_of(n, VirtQueue, host_notifier); bool progress; - if (virtio_queue_empty(vq)) { + if (!vq->vring.desc || virtio_queue_empty(vq)) { return false; }