Commit 7603d1568e121f74b03dabc8f86c7c9b88723075
1 parent
c0009975
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
Showing
1 changed file
with
3 additions
and
1 deletions
hw/ide.c
... | ... | @@ -671,7 +671,8 @@ static void ide_transfer_start(IDEState *s, uint8_t *buf, int size, |
671 | 671 | s->end_transfer_func = end_transfer_func; |
672 | 672 | s->data_ptr = buf; |
673 | 673 | s->data_end = buf + size; |
674 | - s->status |= DRQ_STAT; | |
674 | + if (!(s->status & ERR_STAT)) | |
675 | + s->status |= DRQ_STAT; | |
675 | 676 | } |
676 | 677 | |
677 | 678 | static void ide_transfer_stop(IDEState *s) |
... | ... | @@ -1969,6 +1970,7 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val) |
1969 | 1970 | /* overlapping commands not supported */ |
1970 | 1971 | if (s->feature & 0x02) |
1971 | 1972 | goto abort_cmd; |
1973 | + s->status = READY_STAT; | |
1972 | 1974 | s->atapi_dma = s->feature & 1; |
1973 | 1975 | s->nsector = 1; |
1974 | 1976 | ide_transfer_start(s, s->io_buffer, ATAPI_PACKET_SIZE, | ... | ... |