|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] hvm, ioemu: Fix the ide/cdrom emulation e
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1200995406 0
# Node ID 2af5fb3e34e54e96d0c58e0e4557ee1240df9ce8
# Parent cc5bb500df5feda0755b865134c47f3fe9cec46d
hvm, ioemu: Fix the ide/cdrom emulation error on FC7 guest.
The new libata-eh in the Linux kernel is throwing a fit over the QEMU
cdrom device for two reasons:
1) DRQ can be set with ERR_STAT set. This is a violation of the ATAPI
state machine.
2) After a TEST_UNIT_READY ATAPI command is sent ERR_STAT is getting
set
which is correct. But, when the OS issues another ATAPI command
ERR_STAT is still set. Which is bad since the next expected command
from the OS is REQUEST_SENSE to find out why ERR_STAT is set.
bug this fixes: https://bugzilla.novell.com/show_bug.cgi?id=3D291775
Signed-off-by: Brandon Philips <bphilips@xxxxxxx>
Porting this qemu fix to xen.
Signed-off-by: Xu Dongxiao <dongxiao.xu@xxxxxxxxx>
---
tools/ioemu/hw/ide.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletion(-)
diff -r cc5bb500df5f -r 2af5fb3e34e5 tools/ioemu/hw/ide.c
--- a/tools/ioemu/hw/ide.c Tue Jan 22 09:48:51 2008 +0000
+++ b/tools/ioemu/hw/ide.c Tue Jan 22 09:50:06 2008 +0000
@@ -756,7 +756,9 @@ static void ide_transfer_start(IDEState
s->end_transfer_func = end_transfer_func;
s->data_ptr = buf;
s->data_end = buf + size;
- s->status |= DRQ_STAT;
+ /* don't violate the HSM */
+ if (!(s->status & ERR_STAT))
+ s->status |= DRQ_STAT;
buffered_pio_reset(s);
}
@@ -2011,6 +2013,7 @@ static void ide_ioport_write(void *opaqu
/* overlapping commands not supported */
if (s->feature & 0x02)
goto abort_cmd;
+ s->status = READY_STAT;
s->atapi_dma = s->feature & 1;
s->nsector = 1;
ide_transfer_start(s, s->io_buffer, ATAPI_PACKET_SIZE,
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] hvm, ioemu: Fix the ide/cdrom emulation error on FC7 guest.,
Xen patchbot-unstable <=
|
|
|
|
|