summary refs log tree commit diff stats
path: root/hw/ide
diff options
context:
space:
mode:
authorDavid du Colombier <0intro@gmail.com>2013-12-25 15:17:43 +0100
committerMichael Tokarev <mjt@tls.msk.ru>2014-01-15 23:34:17 +0400
commit850484a295a856474978d9338b8c17eb8e00f549 (patch)
tree6ca195dcaa795baa0282a1d6bb124b13a27426af /hw/ide
parente6baf6130ef26f32a45e0282bd4720913a1ff472 (diff)
downloadfocaccia-qemu-850484a295a856474978d9338b8c17eb8e00f549.tar.gz
focaccia-qemu-850484a295a856474978d9338b8c17eb8e00f549.zip
ide: cmd_exec_dev_diagnostic() always set error register to 0x01
This notably fix IDE CD probing on the Plan 9 operating system,
which rely on the error register set by the Execute Device
Diagnostic command to detect drive configurations.

Thanks to Rémi Pommarel for reporting this issue.

Signed-off-by: David du Colombier <0intro@gmail.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Diffstat (limited to 'hw/ide')
-rw-r--r--hw/ide/core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/ide/core.c b/hw/ide/core.c
index e1f4c33fb8..7783d58291 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -1321,6 +1321,7 @@ static bool cmd_exec_dev_diagnostic(IDEState *s, uint8_t cmd)
         s->status = 0; /* ATAPI spec (v6) section 9.10 defines packet
                         * devices to return a clear status register
                         * with READY_STAT *not* set. */
+        s->error = 0x01;
     } else {
         s->status = READY_STAT | SEEK_STAT;
         /* The bits of the error register are not as usual for this command!