virtio-blk: add missing virtio_detach_element() call
authorStefan Hajnoczi <stefanha@redhat.com>
Mon, 19 Sep 2016 13:28:04 +0000 (14:28 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Sun, 9 Oct 2016 22:16:58 +0000 (01:16 +0300)
Make sure to unmap the scatter-gather list and decrement vq->inuse
before freeing requests in virtio_blk_reset().

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Ladi Prosek <lprosek@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/block/virtio-blk.c

index 3a6112f..c7ca4d6 100644 (file)
@@ -665,6 +665,7 @@ static void virtio_blk_reset(VirtIODevice *vdev)
     while (s->rq) {
         req = s->rq;
         s->rq = req->next;
+        virtqueue_detach_element(req->vq, &req->elem, 0);
         virtio_blk_free_request(req);
     }