diff options
author | Kevin Wolf <kwolf@redhat.com> | 2011-06-09 14:12:57 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2011-06-15 14:36:15 +0200 |
commit | fdc650d76d785ba56b1e87c260ce96d8e22c7cc8 (patch) | |
tree | 29ee353db16ee8f46968c99367256f6615b1372c /hw/ide/core.c | |
parent | def93791f22a3536c3508244ec7d270098484c7d (diff) | |
download | hqemu-fdc650d76d785ba56b1e87c260ce96d8e22c7cc8.zip hqemu-fdc650d76d785ba56b1e87c260ce96d8e22c7cc8.tar.gz |
ide: Fix ide_drive_pio_state_needed()
When a failed PIO request caused the VM to stop, we still need to transfer the
PIO state even though DRQ=0 at this point.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/ide/core.c')
-rw-r--r-- | hw/ide/core.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/ide/core.c b/hw/ide/core.c index da250ac..e5def8b 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -1837,7 +1837,8 @@ static bool ide_drive_pio_state_needed(void *opaque) { IDEState *s = opaque; - return (s->status & DRQ_STAT) != 0; + return ((s->status & DRQ_STAT) != 0) + || (s->bus->error_status & BM_STATUS_PIO_RETRY); } static bool ide_atapi_gesn_needed(void *opaque) |