diff options
author | Kevin Wolf <kwolf@redhat.com> | 2010-11-26 16:47:42 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2010-11-29 16:15:01 +0100 |
commit | e3982b3cf6d17fbba6839d5252f5f757a8d585dc (patch) | |
tree | c10aef73147570a4242c088b2e5b8aed4687d0d5 /hw/ide | |
parent | 8337606d3588f80aea656db74127423bd6b61443 (diff) |
ide: Set bus master inactive on error
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>
Diffstat (limited to 'hw/ide')
-rw-r--r-- | hw/ide/core.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/ide/core.c b/hw/ide/core.c index 7136adef4f..430350f873 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -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); } |