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>
This commit is contained in:
parent
f878c91607
commit
2745df813d
@ -217,17 +217,17 @@ static void bmdma_restart_bh(void *opaque)
|
|||||||
qemu_bh_delete(bm->bh);
|
qemu_bh_delete(bm->bh);
|
||||||
bm->bh = NULL;
|
bm->bh = NULL;
|
||||||
|
|
||||||
if (bm->unit == (uint8_t) -1) {
|
error_status = bus->error_status;
|
||||||
|
if (bus->error_status == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
s = bmdma_active_if(bm);
|
s = idebus_active_if(bus);
|
||||||
is_read = (bus->error_status & IDE_RETRY_READ) != 0;
|
is_read = (bus->error_status & IDE_RETRY_READ) != 0;
|
||||||
|
|
||||||
/* The error status must be cleared before resubmitting the request: The
|
/* The error status must be cleared before resubmitting the request: The
|
||||||
* request may fail again, and this case can only be distinguished if the
|
* request may fail again, and this case can only be distinguished if the
|
||||||
* called function can set a new error status. */
|
* called function can set a new error status. */
|
||||||
error_status = bus->error_status;
|
|
||||||
bus->error_status = 0;
|
bus->error_status = 0;
|
||||||
|
|
||||||
if (error_status & IDE_RETRY_DMA) {
|
if (error_status & IDE_RETRY_DMA) {
|
||||||
|
Loading…
Reference in New Issue
Block a user