diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2007-11-25 11:43:53 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2007-11-25 11:43:53 +0000 |
commit | a2b5673b0018f0184b4833f65a453538cf84f6f5 (patch) | |
tree | 3db44cdf515f059f4c2ddfe28a0137ff8a840d6c /xen/arch/x86/hvm/io.c | |
parent | 727f3fd5fa194bb03e9e478b2fd1760f38a43546 (diff) | |
download | xen-a2b5673b0018f0184b4833f65a453538cf84f6f5.tar.gz xen-a2b5673b0018f0184b4833f65a453538cf84f6f5.tar.bz2 xen-a2b5673b0018f0184b4833f65a453538cf84f6f5.zip |
vmx realmode: Plumb through I/O port accesses in emulated realmode.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/hvm/io.c')
-rw-r--r-- | xen/arch/x86/hvm/io.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c index fe54017012..f522d60378 100644 --- a/xen/arch/x86/hvm/io.c +++ b/xen/arch/x86/hvm/io.c @@ -841,13 +841,17 @@ void hvm_io_assist(void) if ( p->state != STATE_IORESP_READY ) { gdprintk(XENLOG_ERR, "Unexpected HVM iorequest state %d.\n", p->state); - domain_crash_synchronous(); + domain_crash(v->domain); + goto out; } rmb(); /* see IORESP_READY /then/ read contents of ioreq */ p->state = STATE_IOREQ_NONE; + if ( v->arch.hvm_vcpu.io_complete && v->arch.hvm_vcpu.io_complete() ) + goto out; + switch ( p->type ) { case IOREQ_TYPE_INVALIDATE: |