From 47008512afca0b96c5c21c3e24eadd5c3ac890ab Mon Sep 17 00:00:00 2001 From: Tammy Leino Date: Tue, 12 Apr 2022 08:12:37 -0700 Subject: [PATCH] virtqueue_add_buffer must check that there is room for multiple buffers Ensure there is enough room for all the buffers being added to the vring. Signed-off-by: Tammy Leino --- lib/virtio/virtqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/virtio/virtqueue.c b/lib/virtio/virtqueue.c index 18a1c0d93..b4f2fb0ec 100644 --- a/lib/virtio/virtqueue.c +++ b/lib/virtio/virtqueue.c @@ -131,7 +131,7 @@ int virtqueue_add_buffer(struct virtqueue *vq, struct virtqueue_buf *buf_list, VQ_PARAM_CHK(vq == NULL, status, ERROR_VQUEUE_INVLD_PARAM); VQ_PARAM_CHK(needed < 1, status, ERROR_VQUEUE_INVLD_PARAM); - VQ_PARAM_CHK(vq->vq_free_cnt == 0, status, ERROR_VRING_FULL); + VQ_PARAM_CHK(vq->vq_free_cnt < needed, status, ERROR_VRING_FULL); VQUEUE_BUSY(vq);