diff options
author | John Snow | 2015-09-17 20:17:05 +0200 |
---|---|---|
committer | John Snow | 2015-09-18 16:58:56 +0200 |
commit | 9ef2e93f9b1888c7d0deb4a105149138e6ad2e98 (patch) | |
tree | 1599935bfbf94597a5369d13233966d117f35669 /hw/ide/core.c | |
parent | ide: fix ATAPI command permissions (diff) | |
download | qemu-9ef2e93f9b1888c7d0deb4a105149138e6ad2e98.tar.gz qemu-9ef2e93f9b1888c7d0deb4a105149138e6ad2e98.tar.xz qemu-9ef2e93f9b1888c7d0deb4a105149138e6ad2e98.zip |
atapi: abort transfers with 0 byte limits
We're supposed to abort on transfers like this, unless we fill
Word 125 of our IDENTIFY data with a default transfer size, which
we don't currently do.
This is an ATA error, not a SCSI/ATAPI one.
See ATA8-ACS3 sections 7.17.6.49 or 7.21.5.
If we don't do this, QEMU will loop forever trying to transfer
zero bytes, which isn't particularly useful.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1442253685-23349-2-git-send-email-jsnow@redhat.com
Diffstat (limited to 'hw/ide/core.c')
-rw-r--r-- | hw/ide/core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/ide/core.c b/hw/ide/core.c index 1cc6945d80..317406dca3 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -457,7 +457,7 @@ BlockAIOCB *ide_issue_trim(BlockBackend *blk, return &iocb->common; } -static inline void ide_abort_command(IDEState *s) +void ide_abort_command(IDEState *s) { ide_transfer_stop(s); s->status = READY_STAT | ERR_STAT; |