[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/2] virtio-blk: data-plane: fix save/set .complete_
From: |
Ming Lei |
Subject: |
[Qemu-devel] [PATCH 1/2] virtio-blk: data-plane: fix save/set .complete_request in start |
Date: |
Fri, 4 Jul 2014 20:27:33 +0800 |
The callback has to be saved and reset in virtio_blk_data_plane_start(),
otherwise dataplane's requests will be completed in qemu aio context.
Signed-off-by: Ming Lei <address@hidden>
---
hw/block/dataplane/virtio-blk.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
index 227bb15..e88862d 100644
--- a/hw/block/dataplane/virtio-blk.c
+++ b/hw/block/dataplane/virtio-blk.c
@@ -125,7 +125,6 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev,
VirtIOBlkConf *blk,
Error **errp)
{
VirtIOBlockDataPlane *s;
- VirtIOBlock *vblk = VIRTIO_BLK(vdev);
Error *local_err = NULL;
BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(vdev)));
VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
@@ -178,8 +177,6 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev,
VirtIOBlkConf *blk,
bdrv_op_block_all(blk->conf.bs, s->blocker);
*dataplane = s;
- s->saved_complete_request = vblk->complete_request;
- vblk->complete_request = complete_request_vring;
}
/* Context: QEMU global mutex held */
@@ -201,6 +198,7 @@ void virtio_blk_data_plane_start(VirtIOBlockDataPlane *s)
{
BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(s->vdev)));
VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
+ VirtIOBlock *vblk = VIRTIO_BLK(s->vdev);
VirtQueue *vq;
if (s->started) {
@@ -234,6 +232,9 @@ void virtio_blk_data_plane_start(VirtIOBlockDataPlane *s)
}
s->host_notifier = *virtio_queue_get_host_notifier(vq);
+ s->saved_complete_request = vblk->complete_request;
+ vblk->complete_request = complete_request_vring;
+
s->starting = false;
s->started = true;
trace_virtio_blk_data_plane_start(s);
--
1.7.9.5
- [Qemu-devel] [PATCH 0/2] virtio-blk: dataplane: one fix plus one optimization, Ming Lei, 2014/07/04
- [Qemu-devel] [PATCH 1/2] virtio-blk: data-plane: fix save/set .complete_request in start,
Ming Lei <=
- [Qemu-devel] [PATCH 2/2] virtio-blk: dataplane: notify guest as a batch, Ming Lei, 2014/07/04
- Re: [Qemu-devel] [PATCH 2/2] virtio-blk: dataplane: notify guest as a batch, Paolo Bonzini, 2014/07/04
- Re: [Qemu-devel] [PATCH 2/2] virtio-blk: dataplane: notify guest as a batch, Ming Lei, 2014/07/04
- Re: [Qemu-devel] [PATCH 2/2] virtio-blk: dataplane: notify guest as a batch, Paolo Bonzini, 2014/07/04
- Re: [Qemu-devel] [PATCH 2/2] virtio-blk: dataplane: notify guest as a batch, Ming Lei, 2014/07/04
- Re: [Qemu-devel] [PATCH 2/2] virtio-blk: dataplane: notify guest as a batch, Paolo Bonzini, 2014/07/04
- Re: [Qemu-devel] [PATCH 2/2] virtio-blk: dataplane: notify guest as a batch, Ming Lei, 2014/07/05