summaryrefslogtreecommitdiffstats
path: root/hw/ide/core.c
diff options
context:
space:
mode:
authorJohn Snow2015-09-17 20:17:05 +0200
committerJohn Snow2015-09-18 16:58:56 +0200
commit9ef2e93f9b1888c7d0deb4a105149138e6ad2e98 (patch)
tree1599935bfbf94597a5369d13233966d117f35669 /hw/ide/core.c
parentide: fix ATAPI command permissions (diff)
downloadqemu-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.c2
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;