On Wed, Oct 08, 2014 at 01:18:04AM +0200, Paolo Bonzini wrote: > Does this work: > > diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c > index 203e624..c6d4f2e 100644 > --- a/hw/scsi/virtio-scsi.c > +++ b/hw/scsi/virtio-scsi.c > @@ -545,11 +545,12 @@ bool virtio_scsi_handle_cmd_req_prepare(VirtIOSCSI *s, > VirtIOSCSIReq *req) > > void virtio_scsi_handle_cmd_req_submit(VirtIOSCSI *s, VirtIOSCSIReq *req) > { > - if (scsi_req_enqueue(req->sreq)) { > - scsi_req_continue(req->sreq); > + SCSIRequest *sreq = req->sreq; > + bdrv_io_unplug(sreq->dev->conf.bs); > + if (scsi_req_enqueue(sreq)) { > + scsi_req_continue(sreq); > } > - bdrv_io_unplug(req->sreq->dev->conf.bs); > - scsi_req_unref(req->sreq); > + scsi_req_unref(sreq); > } > > static void virtio_scsi_handle_cmd(VirtIODevice *vdev, VirtQueue *vq) > > ?
Yes, that fixes it. Tested-by: Richard W.M. Jones <rjo...@redhat.com> Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW