On 08/09/2017 11:02 AM, Stefan Hajnoczi wrote: > The block backend changed in a way that flushing empty CDROM drives now > crashes. Amend IDE to avoid doing so until the root problem can be > addressed for 2.11. > > Original patch by John Snow <js...@redhat.com>. > > Reported-by: Kieron Shorrock <kshorr...@paloaltonetworks.com> > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > --- > hw/ide/core.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-)
Reviewed-by: Eric Blake <ebl...@redhat.com> > > diff --git a/hw/ide/core.c b/hw/ide/core.c > index 0b48b64d3a..bea39536b0 100644 > --- a/hw/ide/core.c > +++ b/hw/ide/core.c > @@ -1063,7 +1063,15 @@ static void ide_flush_cache(IDEState *s) > s->status |= BUSY_STAT; > ide_set_retry(s); > block_acct_start(blk_get_stats(s->blk), &s->acct, 0, BLOCK_ACCT_FLUSH); > - s->pio_aiocb = blk_aio_flush(s->blk, ide_flush_cb, s); > + > + if (blk_bs(s->blk)) { > + s->pio_aiocb = blk_aio_flush(s->blk, ide_flush_cb, s); > + } else { > + /* XXX blk_aio_flush() crashes when blk_bs(blk) is NULL, remove this > + * temporary workaround when blk_aio_*() functions handle NULL > blk_bs. > + */ > + ide_flush_cb(s, 0); > + } > } > > static void ide_cfata_metadata_inquiry(IDEState *s) > -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature