Mailing List Archive

Absolutely must not return to HVM guest context until
# HG changeset patch
# User kaf24@firebug.cl.cam.ac.uk
# Node ID 9f662b5e7d3c1a2d9da7e734d4ef65966aa9c25d
# Parent 4caca2046421c73e822e268964a404368fc6996c
Absolutely must not return to HVM guest context until
synchronous I/O emulation is completed.

Signed-off-by: Keir Fraser <keir@xensource.com>

diff -r 4caca2046421 -r 9f662b5e7d3c xen/arch/x86/hvm/svm/vmcb.c
--- a/xen/arch/x86/hvm/svm/vmcb.c Mon Feb 13 09:23:26 2006
+++ b/xen/arch/x86/hvm/svm/vmcb.c Mon Feb 13 11:16:16 2006
@@ -489,7 +489,8 @@
{
struct hvm_virpit *vpit = &v->domain->arch.hvm_domain.vpit;

- if ( event_pending(v) )
+ if ( event_pending(v) ||
+ test_bit(ARCH_HVM_IO_WAIT, &v->arch.hvm_vcpu.ioflags) )
hvm_wait_io();

/* pick up the elapsed PIT ticks and re-enable pit_timer */
diff -r 4caca2046421 -r 9f662b5e7d3c xen/arch/x86/hvm/vmx/io.c
--- a/xen/arch/x86/hvm/vmx/io.c Mon Feb 13 09:23:26 2006
+++ b/xen/arch/x86/hvm/vmx/io.c Mon Feb 13 11:16:16 2006
@@ -177,7 +177,8 @@

vmx_stts();

- if ( event_pending(v) )
+ if ( event_pending(v) ||
+ test_bit(ARCH_HVM_IO_WAIT, &v->arch.hvm_vcpu.ioflags) )
hvm_wait_io();

/* pick up the elapsed PIT ticks and re-enable pit_timer */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@lists.xensource.com
http://lists.xensource.com/xen-changelog