From 7603d1568e121f74b03dabc8f86c7c9b88723075 Mon Sep 17 00:00:00 2001 From: ths Date: Sun, 19 Aug 2007 21:46:53 +0000 Subject: [PATCH] Fix bugs in the ATAPI cdrom driver, by Brandon Philips. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3124 c046a42c-6fe2-441c-8c8c-71466251a162 --- hw/ide.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/ide.c b/hw/ide.c index 9acb02a85e..e84c4d67f9 100644 --- a/hw/ide.c +++ b/hw/ide.c @@ -671,7 +671,8 @@ static void ide_transfer_start(IDEState *s, uint8_t *buf, int size, s->end_transfer_func = end_transfer_func; s->data_ptr = buf; s->data_end = buf + size; - s->status |= DRQ_STAT; + if (!(s->status & ERR_STAT)) + s->status |= DRQ_STAT; } static void ide_transfer_stop(IDEState *s) @@ -1969,6 +1970,7 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val) /* overlapping commands not supported */ if (s->feature & 0x02) goto abort_cmd; + s->status = READY_STAT; s->atapi_dma = s->feature & 1; s->nsector = 1; ide_transfer_start(s, s->io_buffer, ATAPI_PACKET_SIZE,