Am 01.06.2011 15:44, schrieb Luiz Capitulino: > On Thu, 26 May 2011 18:12:08 -0300 > Luiz Capitulino <lcapitul...@redhat.com> wrote: > >> On Thu, 19 May 2011 14:33:19 +0200 >> Kevin Wolf <kw...@redhat.com> wrote: >> >>> These printfs aren't really debug messages, but clearly indicate a bug if >>> they >>> ever become effective. >> >> Then we have a bug somewhere, starting a VM with: >> >> # qemu -hda disks/test.img -enable-kvm -m 1G -cdrom /dev/sr0 >> >> Where the host's CDROM is empty, triggers one of these asserts: >> >> qmp-unstable/hw/ide/pci.c:299: bmdma_cmd_writeb: Assertion >> `bm->bus->dma->aiocb == ((void *)0)' > > I found out why this is happening. I'm passing '-snapshot' to the > command-line, > sorry for not mentioning it (I forgot I was using my devel alias).
Okay, so I think we have at least two problems here: * qcow2 doesn't implement bdrv_is_inserted, so the IDE emulation thinks there is a medium when there isn't. Reading produces only errors. * This seems to be an error case where bdrv_aio_readv fails immediately. In this case, qcow2 calls the callback directly, but it should use a bottom half. This leads to an unexpected state in IDE and lets the assertion fail. I think we must fix the latter. Not sure what to do about the former, it's probably similar to forwarding bdrv_eject(). Kevin