]> xenbits.xensource.com Git - qemu-xen-4.4-testing.git/commitdiff
ide: Set bus master inactive on error
authorKevin Wolf <kwolf@redhat.com>
Fri, 26 Nov 2010 15:47:42 +0000 (16:47 +0100)
committerKevin Wolf <kwolf@redhat.com>
Mon, 29 Nov 2010 15:15:01 +0000 (16:15 +0100)
BMIDEA in the status register must be cleared on error. This makes FreeBSD
respond (more) correctly to I/O errors.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
hw/ide/core.c

index 7136adef4f26a3182d8ddc57eb3b0346d4accbb5..430350f8739303346291756de93a3bd5e4a62cdf 100644 (file)
@@ -486,6 +486,8 @@ void ide_dma_error(IDEState *s)
     ide_transfer_stop(s);
     s->error = ABRT_ERR;
     s->status = READY_STAT | ERR_STAT;
+    ide_dma_set_inactive(s->bus->bmdma);
+    s->bus->bmdma->status |= BM_STATUS_INT;
     ide_set_irq(s->bus);
 }