OSDN Git Service

virtio-blk: Schedule BH in the right context
authorFam Zheng <famz@redhat.com>
Tue, 17 Jun 2014 06:32:08 +0000 (14:32 +0800)
committerKevin Wolf <kwolf@redhat.com>
Fri, 27 Jun 2014 16:20:37 +0000 (18:20 +0200)
The BH must be called in the AioContext of bs. Currently it is only the
main loop, but with coming changes, it could also be a dataplane
IOThread.

Signed-off-by: Fam Zheng <famz@redhat.com>
Tested-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hw/block/virtio-blk.c

index 77fb447..a222e3f 100644 (file)
@@ -469,7 +469,8 @@ static void virtio_blk_dma_restart_cb(void *opaque, int running,
     }
 
     if (!s->bh) {
-        s->bh = qemu_bh_new(virtio_blk_dma_restart_bh, s);
+        s->bh = aio_bh_new(bdrv_get_aio_context(s->blk.conf.bs),
+                           virtio_blk_dma_restart_bh, s);
         qemu_bh_schedule(s->bh);
     }
 }