[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 04/15] virtio-mem: detach the element from the virtqueue when e
From: |
Michael S. Tsirkin |
Subject: |
[PULL v2 04/15] virtio-mem: detach the element from the virtqueue when error occurs |
Date: |
Fri, 18 Sep 2020 12:20:07 -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 v2 00/15] virtio,pc,acpi: fixes, tests, Michael S. Tsirkin, 2020/09/18
- [PULL v2 01/15] linux headers: sync to 5.9-rc4, Michael S. Tsirkin, 2020/09/18
- [PULL v2 04/15] virtio-mem: detach the element from the virtqueue when error occurs,
Michael S. Tsirkin <=
- [PULL v2 03/15] vhost-vdpa: batch updating IOTLB mappings, Michael S. Tsirkin, 2020/09/18
- [PULL v2 05/15] pc: fix auto_enable_numa_with_memhp/auto_enable_numa_with_memdev for the 5.0 machine, Michael S. Tsirkin, 2020/09/18
- [PULL v2 07/15] vhost: check queue state in the vhost_dev_set_log routine, Michael S. Tsirkin, 2020/09/18
- [PULL v2 08/15] tests/qtest/vhost-user-test: prepare the tests for adding new dev class, Michael S. Tsirkin, 2020/09/18
- [PULL v2 06/15] vhost: recheck dev state in the vhost_migration_log routine, Michael S. Tsirkin, 2020/09/18
- [PULL v2 09/15] tests/qtest/libqos/virtio-blk: add support for vhost-user-blk, Michael S. Tsirkin, 2020/09/18
- [PULL v2 10/15] tests/qtest/vhost-user-test: add support for the vhost-user-blk device, Michael S. Tsirkin, 2020/09/18
- [PULL v2 15/15] virtio-iommu-pci: force virtio version 1, Michael S. Tsirkin, 2020/09/18
- [PULL v2 11/15] tests/qtest/vhost-user-test: add migrate_reconnect test, Michael S. Tsirkin, 2020/09/18
- [PULL v2 12/15] tests/qtest/vhost-user-test: enable the reconnect tests, Michael S. Tsirkin, 2020/09/18