virtio: remove unused next argument from virtqueue_split_read_next_desc()
The 'next' was converted from a local variable to an output parameter in commit:412e0e81b1
("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:aa570d6fb6
("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>
This commit is contained in:
parent
d501f97d96
commit
70f88436aa
@ -1049,9 +1049,10 @@ enum {
|
|||||||
VIRTQUEUE_READ_DESC_MORE = 1, /* more buffers in chain */
|
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,
|
static int virtqueue_split_read_next_desc(VirtIODevice *vdev, VRingDesc *desc,
|
||||||
MemoryRegionCache *desc_cache,
|
MemoryRegionCache *desc_cache,
|
||||||
unsigned int max, unsigned int *next)
|
unsigned int max)
|
||||||
{
|
{
|
||||||
/* If this descriptor says it doesn't chain, we're done. */
|
/* If this descriptor says it doesn't chain, we're done. */
|
||||||
if (!(desc->flags & VRING_DESC_F_NEXT)) {
|
if (!(desc->flags & VRING_DESC_F_NEXT)) {
|
||||||
@ -1059,14 +1060,12 @@ static int virtqueue_split_read_next_desc(VirtIODevice *vdev, VRingDesc *desc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Check they're not leading us off end of descriptors. */
|
/* Check they're not leading us off end of descriptors. */
|
||||||
*next = desc->next;
|
if (desc->next >= max) {
|
||||||
|
virtio_error(vdev, "Desc next is %u", desc->next);
|
||||||
if (*next >= max) {
|
|
||||||
virtio_error(vdev, "Desc next is %u", *next);
|
|
||||||
return VIRTQUEUE_READ_DESC_ERROR;
|
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;
|
return VIRTQUEUE_READ_DESC_MORE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1146,7 +1145,7 @@ static void virtqueue_split_get_avail_bytes(VirtQueue *vq,
|
|||||||
goto done;
|
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);
|
} while (rc == VIRTQUEUE_READ_DESC_MORE);
|
||||||
|
|
||||||
if (rc == VIRTQUEUE_READ_DESC_ERROR) {
|
if (rc == VIRTQUEUE_READ_DESC_ERROR) {
|
||||||
@ -1601,7 +1600,7 @@ static void *virtqueue_split_pop(VirtQueue *vq, size_t sz)
|
|||||||
goto err_undo_map;
|
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);
|
} while (rc == VIRTQUEUE_READ_DESC_MORE);
|
||||||
|
|
||||||
if (rc == VIRTQUEUE_READ_DESC_ERROR) {
|
if (rc == VIRTQUEUE_READ_DESC_ERROR) {
|
||||||
@ -4055,8 +4054,7 @@ VirtioQueueElement *qmp_x_query_virtio_queue_element(const char *path,
|
|||||||
list = node;
|
list = node;
|
||||||
|
|
||||||
ndescs++;
|
ndescs++;
|
||||||
rc = virtqueue_split_read_next_desc(vdev, &desc, desc_cache,
|
rc = virtqueue_split_read_next_desc(vdev, &desc, desc_cache, max);
|
||||||
max, &i);
|
|
||||||
} while (rc == VIRTQUEUE_READ_DESC_MORE);
|
} while (rc == VIRTQUEUE_READ_DESC_MORE);
|
||||||
element->descs = list;
|
element->descs = list;
|
||||||
done:
|
done:
|
||||||
|
Loading…
Reference in New Issue
Block a user