@@ -238,26 +238,10 @@ int virtio_queue_empty(VirtQueue *vq)
void virtqueue_fill(VirtQueue *vq, const VirtQueueElement *elem,
unsigned int len, unsigned int idx)
{
- unsigned int offset;
- int i;
-
trace_virtqueue_fill(vq, elem, len, idx);
- offset = 0;
- for (i = 0; i < elem->in_num; i++) {
- size_t size = MIN(len - offset, elem->in_sg[i].iov_len);
-
- cpu_physical_memory_unmap(elem->in_sg[i].iov_base,
- elem->in_sg[i].iov_len,
- 1, size);
-
- offset += size;
- }
-
- for (i = 0; i < elem->out_num; i++)
- cpu_physical_memory_unmap(elem->out_sg[i].iov_base,
- elem->out_sg[i].iov_len,
- 0, elem->out_sg[i].iov_len);
+ virtqueue_unmap_sg(elem->in_sg, elem->in_num, 1, len);
+ virtqueue_unmap_sg(elem->out_sg, elem->out_num, 0, UINT_MAX);
idx = (idx + vring_used_idx(vq)) % vq->vring.num;
Use virtqueue_unmap_sg to unmap in_sg and out_sg in virtqueue_fill. No functional changes. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> CC: jasowang@redhat.com CC: wency@cn.fujitsu.com CC: mst@redhat.com CC: pbonzini@redhat.com --- hw/virtio/virtio.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-)