Skip to content

Commit

Permalink
virtio: remove unused next argument from virtqueue_split_read_next_de…
Browse files Browse the repository at this point in the history
…sc()

The 'next' was converted from a local variable to an output parameter
in commit:
  412e0e8 ("virtio: handle virtqueue_read_next_desc() errors")

But all the actual uses of the 'i/next' as an output were removed a few
months prior in commit:
  aa570d6 ("virtio: combine the read of a descriptor")

Remove the unused argument to simplify the code.

Also, adding a comment to the function to describe what it is actually
doing, as it is not obvious that the 'desc' is both an input and an
output argument.

Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Message-Id: <20230927140016.2317404-3-i.maximets@ovn.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
  • Loading branch information
igsilya authored and mstsirkin committed Oct 4, 2023
1 parent d501f97 commit 70f8843
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions hw/virtio/virtio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1049,24 +1049,23 @@ enum {
VIRTQUEUE_READ_DESC_MORE = 1, /* more buffers in chain */
};

/* Reads the 'desc->next' descriptor into '*desc'. */
static int virtqueue_split_read_next_desc(VirtIODevice *vdev, VRingDesc *desc,
MemoryRegionCache *desc_cache,
unsigned int max, unsigned int *next)
unsigned int max)
{
/* If this descriptor says it doesn't chain, we're done. */
if (!(desc->flags & VRING_DESC_F_NEXT)) {
return VIRTQUEUE_READ_DESC_DONE;
}

/* Check they're not leading us off end of descriptors. */
*next = desc->next;

if (*next >= max) {
virtio_error(vdev, "Desc next is %u", *next);
if (desc->next >= max) {
virtio_error(vdev, "Desc next is %u", desc->next);
return VIRTQUEUE_READ_DESC_ERROR;
}

vring_split_desc_read(vdev, desc, desc_cache, *next);
vring_split_desc_read(vdev, desc, desc_cache, desc->next);
return VIRTQUEUE_READ_DESC_MORE;
}

Expand Down Expand Up @@ -1146,7 +1145,7 @@ static void virtqueue_split_get_avail_bytes(VirtQueue *vq,
goto done;
}

rc = virtqueue_split_read_next_desc(vdev, &desc, desc_cache, max, &i);
rc = virtqueue_split_read_next_desc(vdev, &desc, desc_cache, max);
} while (rc == VIRTQUEUE_READ_DESC_MORE);

if (rc == VIRTQUEUE_READ_DESC_ERROR) {
Expand Down Expand Up @@ -1601,7 +1600,7 @@ static void *virtqueue_split_pop(VirtQueue *vq, size_t sz)
goto err_undo_map;
}

rc = virtqueue_split_read_next_desc(vdev, &desc, desc_cache, max, &i);
rc = virtqueue_split_read_next_desc(vdev, &desc, desc_cache, max);
} while (rc == VIRTQUEUE_READ_DESC_MORE);

if (rc == VIRTQUEUE_READ_DESC_ERROR) {
Expand Down Expand Up @@ -4055,8 +4054,7 @@ VirtioQueueElement *qmp_x_query_virtio_queue_element(const char *path,
list = node;

ndescs++;
rc = virtqueue_split_read_next_desc(vdev, &desc, desc_cache,
max, &i);
rc = virtqueue_split_read_next_desc(vdev, &desc, desc_cache, max);
} while (rc == VIRTQUEUE_READ_DESC_MORE);
element->descs = list;
done:
Expand Down

0 comments on commit 70f8843

Please sign in to comment.