[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH] scsi-disk: Fix crash if underlying host file or
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-block] [PATCH] scsi-disk: Fix crash if underlying host file or disk returns error. |
Date: |
Wed, 21 Nov 2018 19:31:30 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 |
On 21/11/18 13:47, Richard W.M. Jones wrote:
> Commit 40dce4ee6 "scsi-disk: fix rerror/werror=ignore" introduced a
> bug which causes qemu to crash with the assertion error below if the
> host file or disk returns an error:
>
> qemu-system-x86_64: hw/scsi/scsi-bus.c:1374: scsi_req_complete:
> Assertion `req->status == -1' failed.
>
> Kevin Wolf suggested this fix:
>
> < kwolf> Hm, should the final return false; in that patch
> actually be a return true?
> < kwolf> Because I think he didn't intend to change anything
> except BLOCK_ERROR_ACTION_IGNORE
>
> Signed-off-by: Richard W.M. Jones <address@hidden>
> Buglink: https://bugs.launchpad.net/qemu/+bug/1804323
> ---
> hw/scsi/scsi-disk.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
> index 6eb258d3f3..0e9027c8f3 100644
> --- a/hw/scsi/scsi-disk.c
> +++ b/hw/scsi/scsi-disk.c
> @@ -482,7 +482,7 @@ static bool scsi_handle_rw_error(SCSIDiskReq *r, int
> error, bool acct_failed)
> if (action == BLOCK_ERROR_ACTION_STOP) {
> scsi_req_retry(&r->req);
> }
> - return false;
> + return true;
> }
>
> static void scsi_write_complete_noio(SCSIDiskReq *r, int ret)
>
Looks good. I was confused because now the function always returns
true. "If an arm was returning true, the other must be returning false...".
Paolo