]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
x86 hvm: hvm_maybe_deassert_evtchn_irq() needs to be called early in
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 11 Jan 2008 11:06:22 +0000 (11:06 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 11 Jan 2008 11:06:22 +0000 (11:06 +0000)
vmexit handling, before IO-APIC can be EOIed or unmasked and resample
the fake INTx line.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen-unstable changeset:   16705:e4fd457a3dd5eebf059b49340bb7f3aea1239d8f
xen-unstable date:        Fri Jan 11 10:53:44 2008 +0000

xen/arch/x86/hvm/svm/intr.c
xen/arch/x86/hvm/svm/svm.c
xen/arch/x86/hvm/vmx/intr.c
xen/arch/x86/hvm/vmx/vmx.c

index 749f7c128e0a2f24533a62b47d3c92b7a19f368d..b51a9a1740506195cd01efe6f11702fecfb2ef3c 100644 (file)
@@ -125,7 +125,6 @@ asmlinkage void svm_intr_assist(void)
 
     /* Crank the handle on interrupt state and check for new interrrupts. */
     pt_update_irq(v);
-    hvm_maybe_deassert_evtchn_irq();
 
     do {
         if ( !cpu_has_pending_irq(v) )
index 02c5041c44b6e85f7e515ac36676801d055cb192..70866ccba293c2bbc89a964ab71dd3d20d5982f6 100644 (file)
@@ -2451,6 +2451,8 @@ asmlinkage void svm_vmexit_handler(struct cpu_user_regs *regs)
     perfc_incra(svmexits, exit_reason);
     eip = vmcb->rip;
 
+    hvm_maybe_deassert_evtchn_irq();
+
     switch ( exit_reason )
     {
     case VMEXIT_INTR:
index 3cb8095807b8c8d04ebea472521d2e04803b2a11..d9808f724ddb4cc716f97270194b4a1cd2ac040c 100644 (file)
@@ -110,8 +110,6 @@ asmlinkage void vmx_intr_assist(void)
 
     pt_update_irq(v);
 
-    hvm_maybe_deassert_evtchn_irq();
-
     update_tpr_threshold(vcpu_vlapic(v));
 
     do {
index c0c60c302638d5577ea6a098d4bd9c93313ec1b6..1242adffeefceec5a753d2b8c3ac51603125d266 100644 (file)
@@ -2912,6 +2912,8 @@ asmlinkage void vmx_vmexit_handler(struct cpu_user_regs *regs)
     if ( unlikely(exit_reason & VMX_EXIT_REASONS_FAILED_VMENTRY) )
         return vmx_failed_vmentry(exit_reason, regs);
 
+    hvm_maybe_deassert_evtchn_irq();
+
     switch ( exit_reason )
     {
     case EXIT_REASON_EXCEPTION_NMI: