qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Bug 1378554] [NEW] qemu segfault in virtio_scsi_handle


From: Richard W.M. Jones
Subject: Re: [Qemu-devel] [Bug 1378554] [NEW] qemu segfault in virtio_scsi_handle_cmd_req_submit on ARM 32 bit
Date: Wed, 8 Oct 2014 10:17:32 +0100
User-agent: Mutt/1.5.20 (2009-12-10)

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 <address@hidden>

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]