mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
qemu: Send unit_attention on cd-rom not_ready to ready transition
Patch sends a UNIT_ATTENTION(6), MEDIUM_MAY_HAVE_CHANGED(0x28) sense when cdrom transitions from not ready to ready. ATA Packet interface for CD-ROMS, SFF8020i.pdf. See state diagram Figure 12, page 82 and Table 44 -recommended Sense Key, ASC With patch in place HVM win2008 server guest sees the CD/DVD contents have changed when the media is switched. Signed-off-by: Pat Campbell <plc@novell.com>
This commit is contained in:
1 parent
34b1fea64b
commit
eaad775dc2
1 file changed
+6
@@ -289,6 +289,7 @@
|
||||
#define ASC_ILLEGAL_OPCODE 0x20
|
||||
#define ASC_LOGICAL_BLOCK_OOR 0x21
|
||||
#define ASC_INV_FIELD_IN_CMD_PACKET 0x24
|
||||
#define ASC_MEDIUM_MAY_HAVE_CHANGED 0x28
|
||||
#define ASC_MEDIUM_NOT_PRESENT 0x3a
|
||||
#define ASC_SAVING_PARAMETERS_NOT_SUPPORTED 0x39
|
||||
|
||||
@@ -1456,6 +1457,11 @@ static void ide_atapi_cmd(IDEState *s)
|
||||
switch(s->io_buffer[0]) {
|
||||
case GPCMD_TEST_UNIT_READY:
|
||||
if (bdrv_is_inserted(s->bs)) {
|
||||
if (s->is_cdrom && s->sense_key == SENSE_NOT_READY) {
|
||||
ide_atapi_cmd_error(s, SENSE_UNIT_ATTENTION,
|
||||
ASC_MEDIUM_MAY_HAVE_CHANGED);
|
||||
break;
|
||||
}
|
||||
ide_atapi_cmd_ok(s);
|
||||
} else {
|
||||
ide_atapi_cmd_error(s, SENSE_NOT_READY,
|
||||
|
||||