[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v4 04/48] virtio-mem: detach the element from the virtqueue when e
From: |
Michael S. Tsirkin |
Subject: |
[PULL v4 04/48] virtio-mem: detach the element from the virtqueue when error occurs |
Date: |
Tue, 29 Sep 2020 03:21:00 -0400 |
From: Li Qiang <liq3ea@163.com>
If error occurs while processing the virtio request we should call
'virtqueue_detach_element' to detach the element from the virtqueue
before free the elem.
Signed-off-by: Li Qiang <liq3ea@163.com>
Message-Id: <20200816142245.17556-1-liq3ea@163.com>
Fixes: 910b25766b ("virtio-mem: Paravirtualized memory hot(un)plug")
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/virtio/virtio-mem.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/virtio/virtio-mem.c b/hw/virtio/virtio-mem.c
index 8fbec77ccc..7c8ca9f28b 100644
--- a/hw/virtio/virtio-mem.c
+++ b/hw/virtio/virtio-mem.c
@@ -318,6 +318,7 @@ static void virtio_mem_handle_request(VirtIODevice *vdev,
VirtQueue *vq)
if (iov_to_buf(elem->out_sg, elem->out_num, 0, &req, len) < len) {
virtio_error(vdev, "virtio-mem protocol violation: invalid request"
" size: %d", len);
+ virtqueue_detach_element(vq, elem, 0);
g_free(elem);
return;
}
@@ -327,6 +328,7 @@ static void virtio_mem_handle_request(VirtIODevice *vdev,
VirtQueue *vq)
virtio_error(vdev, "virtio-mem protocol violation: not enough
space"
" for response: %zu",
iov_size(elem->in_sg, elem->in_num));
+ virtqueue_detach_element(vq, elem, 0);
g_free(elem);
return;
}
@@ -348,6 +350,7 @@ static void virtio_mem_handle_request(VirtIODevice *vdev,
VirtQueue *vq)
default:
virtio_error(vdev, "virtio-mem protocol violation: unknown request"
" type: %d", type);
+ virtqueue_detach_element(vq, elem, 0);
g_free(elem);
return;
}
--
MST
- [PULL v4 00/48] virtio,pc,acpi: fixes, tests, Michael S. Tsirkin, 2020/09/29
- [PULL v4 03/48] vhost-vdpa: batch updating IOTLB mappings, Michael S. Tsirkin, 2020/09/29
- [PULL v4 05/48] pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine, Michael S. Tsirkin, 2020/09/29
- [PULL v4 04/48] virtio-mem: detach the element from the virtqueue when error occurs,
Michael S. Tsirkin <=
- [PULL v4 06/48] vhost: recheck dev state in the vhost_migration_log routine, Michael S. Tsirkin, 2020/09/29
- [PULL v4 07/48] vhost: check queue state in the vhost_dev_set_log routine, Michael S. Tsirkin, 2020/09/29
- [PULL v4 08/48] tests/qtest/vhost-user-test: prepare the tests for adding new dev class, Michael S. Tsirkin, 2020/09/29
- [PULL v4 10/48] virtio-iommu: Check gtrees are non null before destroying them, Michael S. Tsirkin, 2020/09/29
- [PULL v4 11/48] virtio-iommu-pci: force virtio version 1, Michael S. Tsirkin, 2020/09/29
- [PULL v4 09/48] cphp: remove deprecated cpu-add command(s), Michael S. Tsirkin, 2020/09/29
- [PULL v4 13/48] util/hexdump: introduce qemu_hexdump_line(), Michael S. Tsirkin, 2020/09/29
- [PULL v4 14/48] vhost-vdpa: add trace-events, Michael S. Tsirkin, 2020/09/29
- [PULL v4 15/48] configure: Fix build dependencies with vhost-vdpa., Michael S. Tsirkin, 2020/09/29
- [PULL v4 16/48] virtio: skip legacy support check on machine types less than 5.1, Michael S. Tsirkin, 2020/09/29