SVQ is going to store it in SVQElement, so we need it before add functions.
Signed-off-by: Eugenio Pérez <epere...@redhat.com> --- hw/virtio/vhost-shadow-virtqueue.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-virtqueue.c index 913bca8769..cf1745fd4d 100644 --- a/hw/virtio/vhost-shadow-virtqueue.c +++ b/hw/virtio/vhost-shadow-virtqueue.c @@ -218,6 +218,16 @@ static bool vhost_svq_add_split(VhostShadowVirtqueue *svq, return true; } +static uint16_t vhost_svq_last_desc_of_chain(const VhostShadowVirtqueue *svq, + uint16_t num, uint16_t i) +{ + for (uint16_t j = 0; j < (num - 1); ++j) { + i = le16_to_cpu(svq->desc_next[i]); + } + + return i; +} + /** * Add an element to a SVQ. * @@ -375,16 +385,6 @@ static void vhost_svq_disable_notification(VhostShadowVirtqueue *svq) svq->vring.avail->flags |= cpu_to_le16(VRING_AVAIL_F_NO_INTERRUPT); } -static uint16_t vhost_svq_last_desc_of_chain(const VhostShadowVirtqueue *svq, - uint16_t num, uint16_t i) -{ - for (uint16_t j = 0; j < (num - 1); ++j) { - i = le16_to_cpu(svq->desc_next[i]); - } - - return i; -} - static bool vhost_svq_is_empty_elem(SVQElement elem) { return elem.elem == NULL; -- 2.31.1