ia64/xen-unstable
changeset 7374:48f542f8d906
Currently, we mark an IO request to STATE_IOREQ_READY state before
calling IO handlers in xen HV, i.e. vmx_portio_intercept or
vmx_mmio_intercept. Actually, STATE_IOREQ_READY means it's ready for
DM handling, only if IO handlers in xen HV won't handle it, it should
be passed to DM. This patch fixes this issue.
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: Xin Li <xin.b.li@intel.com>
Signed-off-by: Nakajima Jun <nakajima.jun@intel.com>
calling IO handlers in xen HV, i.e. vmx_portio_intercept or
vmx_mmio_intercept. Actually, STATE_IOREQ_READY means it's ready for
DM handling, only if IO handlers in xen HV won't handle it, it should
be passed to DM. This patch fixes this issue.
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: Xin Li <xin.b.li@intel.com>
Signed-off-by: Nakajima Jun <nakajima.jun@intel.com>
author | kaf24@firebug.cl.cam.ac.uk |
---|---|
date | Thu Oct 13 08:06:27 2005 +0100 (2005-10-13) |
parents | 40b4860f554a |
children | 9e373ffff3e6 |
files | xen/arch/x86/vmx.c xen/arch/x86/vmx_platform.c |
line diff
1.1 --- a/xen/arch/x86/vmx.c Wed Oct 12 21:10:14 2005 +0100 1.2 +++ b/xen/arch/x86/vmx.c Thu Oct 13 08:06:27 2005 +0100 1.3 @@ -646,14 +646,14 @@ void send_pio_req(struct cpu_user_regs * 1.4 } else 1.5 p->u.data = value; 1.6 1.7 - p->state = STATE_IOREQ_READY; 1.8 - 1.9 if (vmx_portio_intercept(p)) { 1.10 /* no blocking & no evtchn notification */ 1.11 clear_bit(ARCH_VMX_IO_WAIT, &v->arch.arch_vmx.flags); 1.12 return; 1.13 } 1.14 1.15 + p->state = STATE_IOREQ_READY; 1.16 + 1.17 evtchn_send(iopacket_port(v->domain)); 1.18 vmx_wait_io(); 1.19 }
2.1 --- a/xen/arch/x86/vmx_platform.c Wed Oct 12 21:10:14 2005 +0100 2.2 +++ b/xen/arch/x86/vmx_platform.c Thu Oct 13 08:06:27 2005 +0100 2.3 @@ -643,14 +643,14 @@ void send_mmio_req(unsigned char type, u 2.4 } else 2.5 p->u.data = value; 2.6 2.7 - p->state = STATE_IOREQ_READY; 2.8 - 2.9 if (vmx_mmio_intercept(p)){ 2.10 p->state = STATE_IORESP_READY; 2.11 vmx_io_assist(v); 2.12 return; 2.13 } 2.14 2.15 + p->state = STATE_IOREQ_READY; 2.16 + 2.17 evtchn_send(iopacket_port(v->domain)); 2.18 vmx_wait_io(); 2.19 }