From: John Snow <jsnow@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>, qemu-block@nongnu.org
Cc: qemu-devel@nongnu.org, lersek@redhat.com, armbru@redhat.com,
mreitz@redhat.com
Subject: Re: [Qemu-devel] [PATCH for-2.7 1/1] ide: fix halted IO segfault at reset
Date: Mon, 1 Aug 2016 23:37:22 -0400 [thread overview]
Message-ID: <252f57a7-52ac-cb52-e8fc-df998bba0cdb@redhat.com> (raw)
In-Reply-To: <7d6771b0-189f-dab9-d5a8-e336a46a4ea5@redhat.com>
On 08/01/2016 04:52 AM, Paolo Bonzini wrote:
>
>
> On 27/07/2016 00:07, John Snow wrote:
>> If one attempts to perform a system_reset after a failed IO request
>> that causes the VM to enter a paused state, QEMU will segfault trying
>> to free up the pending IO requests.
>>
>> These requests have already been completed and freed, though, so all
>> we need to do is free them before we enter the paused state.
>>
>> Existing AHCI tests verify that halted requests are still resumed
>> successfully after a STOP event.
>>
>> Signed-off-by: John Snow <jsnow@redhat.com>
>> ---
>> hw/ide/core.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/hw/ide/core.c b/hw/ide/core.c
>> index 081c9eb..d117b7c 100644
>> --- a/hw/ide/core.c
>> +++ b/hw/ide/core.c
>> @@ -823,6 +823,7 @@ static void ide_dma_cb(void *opaque, int ret)
>> }
>> if (ret < 0) {
>> if (ide_handle_rw_error(s, -ret, ide_dma_cmd_to_retry(s->dma_cmd))) {
>> + s->bus->dma->aiocb = NULL;
>> return;
>> }
>> }
>>
>
> The patch is (was, since it's committed :)) okay, but I think there is
> another bug in the REPORT case, where ide_rw_error and
> ide_atapi_io_error are not calling ide_set_inactive and thus are leaving
> s->bus->dma->aiocb non-NULL.
>
> Paolo
>
Actually, won't we hit ide_dma_error on REPORT which calls
ide_set_inactive? I think this might be OK, but I have to audit a little
more carefully -- I will do so tomorrow.
I think the ide_rw_error case is likely OK, but I always manage to
forget exactly how the ATAPI DMA looks.
next prev parent reply other threads:[~2016-08-02 3:37 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-26 22:07 [Qemu-devel] [PATCH for-2.7 0/1] ide: fix halted IO segfault at reset John Snow
2016-07-26 22:07 ` [Qemu-devel] [PATCH for-2.7 1/1] " John Snow
2016-07-27 13:04 ` Laszlo Ersek
2016-07-27 14:30 ` John Snow
2016-08-01 8:52 ` Paolo Bonzini
2016-08-02 3:31 ` John Snow
2016-08-02 17:08 ` Paolo Bonzini
2016-08-02 3:37 ` John Snow [this message]
2016-08-02 17:06 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=252f57a7-52ac-cb52-e8fc-df998bba0cdb@redhat.com \
--to=jsnow@redhat.com \
--cc=armbru@redhat.com \
--cc=lersek@redhat.com \
--cc=mreitz@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.