aboutsummaryrefslogtreecommitdiff
path: root/hw/virtio
diff options
context:
space:
mode:
authorLi Qiang <liq3ea@163.com>2020-08-13 09:51:25 -0700
committerMichael S. Tsirkin <mst@redhat.com>2020-09-29 03:06:12 -0400
commit2bc9e0da573f77b2f21cc6e4a681c31ddeccfd1d (patch)
treec9ae59bc4e68d79f316365359991fb5819d492d6 /hw/virtio
parent0ed93f4c05896145434adbce5fa328643260dd2e (diff)
hw: virtio-pmem: detach the element fromt the virtqueue when error occurs
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: <20200813165125.59928-1-liq3ea@163.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Fixes: 5f503cd9f3 ("virtio-pmem: add virtio device") Reviewed-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Diffstat (limited to 'hw/virtio')
-rw-r--r--hw/virtio/virtio-pmem.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/virtio/virtio-pmem.c b/hw/virtio/virtio-pmem.c
index 1e0c137497..ddb0125901 100644
--- a/hw/virtio/virtio-pmem.c
+++ b/hw/virtio/virtio-pmem.c
@@ -77,6 +77,7 @@ static void virtio_pmem_flush(VirtIODevice *vdev, VirtQueue *vq)
if (req_data->elem.out_num < 1 || req_data->elem.in_num < 1) {
virtio_error(vdev, "virtio-pmem request not proper");
+ virtqueue_detach_element(vq, (VirtQueueElement *)req_data, 0);
g_free(req_data);
return;
}