aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2015-02-23 11:17:53 -0500
committerKevin Wolf <kwolf@redhat.com>2015-03-10 14:02:22 +0100
commit2745df813d82724f2633a9b2ba7f7c5717d7509b (patch)
treed4e9fb15c4991364bfd737d0a77a8568e7370bc9
parentf878c916077d510be3276dad7c36f606cdcea80a (diff)
ide: do not use BMDMA in restart callback
Whenever an error stops the VM, ide_handle_rw_error does "s->bus->dma->unit = s->unit". So we can just use idebus_active_if. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com> Message-id: 1424708286-16483-5-git-send-email-jsnow@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r--hw/ide/pci.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index 34fc4fbef9..62c88d7f6f 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -217,17 +217,17 @@ static void bmdma_restart_bh(void *opaque)
qemu_bh_delete(bm->bh);
bm->bh = NULL;
- if (bm->unit == (uint8_t) -1) {
+ error_status = bus->error_status;
+ if (bus->error_status == 0) {
return;
}
- s = bmdma_active_if(bm);
+ s = idebus_active_if(bus);
is_read = (bus->error_status & IDE_RETRY_READ) != 0;
/* The error status must be cleared before resubmitting the request: The
* request may fail again, and this case can only be distinguished if the
* called function can set a new error status. */
- error_status = bus->error_status;
bus->error_status = 0;
if (error_status & IDE_RETRY_DMA) {