[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH v9 01/23] vhost: Return earlier if used buffers overrun
From: |
Jason Wang |
Subject: |
Re: [RFC PATCH v9 01/23] vhost: Return earlier if used buffers overrun |
Date: |
Fri, 8 Jul 2022 16:52:10 +0800 |
On Thu, Jul 7, 2022 at 2:40 AM Eugenio Pérez <eperezma@redhat.com> wrote:
>
> Previous function misses the just picked avail buffer from the queue.
> This way keeps blocking the used queue forever, but is cleaner to check
> before calling to vhost_svq_get_buf.
>
> Fixes: 100890f7cad50 ("vhost: Shadow virtqueue buffers forwarding")
> Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
> ---
> hw/virtio/vhost-shadow-virtqueue.c | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/hw/virtio/vhost-shadow-virtqueue.c
> b/hw/virtio/vhost-shadow-virtqueue.c
> index 56c96ebd13..9280285435 100644
> --- a/hw/virtio/vhost-shadow-virtqueue.c
> +++ b/hw/virtio/vhost-shadow-virtqueue.c
> @@ -405,19 +405,21 @@ static void vhost_svq_flush(VhostShadowVirtqueue *svq,
> vhost_svq_disable_notification(svq);
> while (true) {
> uint32_t len;
> - g_autofree VirtQueueElement *elem = vhost_svq_get_buf(svq, &len);
> - if (!elem) {
> - break;
> - }
> + g_autofree VirtQueueElement *elem = NULL;
>
> if (unlikely(i >= svq->vring.num)) {
> qemu_log_mask(LOG_GUEST_ERROR,
> "More than %u used buffers obtained in a %u size
> SVQ",
> i, svq->vring.num);
> - virtqueue_fill(vq, elem, len, i);
> - virtqueue_flush(vq, i);
> + virtqueue_flush(vq, svq->vring.num);
> return;
> }
> +
> + elem = vhost_svq_get_buf(svq, &len);
> + if (!elem) {
> + break;
> + }
> +
> virtqueue_fill(vq, elem, len, i++);
> }
>
> --
> 2.31.1
>
[RFC PATCH v9 06/23] virtio-net: Expose ctrl virtqueue logic, Eugenio Pérez, 2022/07/06
[RFC PATCH v9 02/23] vhost: move descriptor translation to vhost_svq_vring_write_descs, Eugenio Pérez, 2022/07/06
[RFC PATCH v9 07/23] vhost: add vhost_svq_push_elem, Eugenio Pérez, 2022/07/06
[RFC PATCH v9 08/23] vhost: Decouple vhost_svq_add_split from VirtQueueElement, Eugenio Pérez, 2022/07/06