# HG changeset patch
# User adsharma@xxxxxxxxxxxxxxxxxxxx
# Node ID c5ef23281be2979f40fc3f4a90ce90e581a001c6
# Parent 3a8f27c6d56c7632db60b81e6a2d2aa529c2749c
Remove the redundant call to vmx_intr_assit when we do a domain switch.
Signed-off-by: Eddie Dong <eddie.dong@xxxxxxxxx>
Signed-off-by: Edwin Zhai <edwin.zhai@xxxxxxxxx>
Signed-off-by: Arun Sharma <arun.sharma@xxxxxxxxx>
diff -r 3a8f27c6d56c -r c5ef23281be2 xen/arch/x86/vmx.c
--- a/xen/arch/x86/vmx.c Mon Aug 22 18:00:37 2005
+++ b/xen/arch/x86/vmx.c Mon Aug 22 18:04:05 2005
@@ -1713,7 +1713,6 @@
__vmx_bug(®s); /* should not happen */
}
- vmx_intr_assist(v);
return;
}
diff -r 3a8f27c6d56c -r c5ef23281be2 xen/arch/x86/vmx_io.c
--- a/xen/arch/x86/vmx_io.c Mon Aug 22 18:00:37 2005
+++ b/xen/arch/x86/vmx_io.c Mon Aug 22 18:04:05 2005
@@ -631,12 +631,14 @@
return ((eflags & X86_EFLAGS_IF) == 0);
}
-void vmx_intr_assist(struct vcpu *v)
+asmlinkage void vmx_intr_assist()
{
int intr_type = 0;
- int highest_vector = find_highest_pending_irq(v, &intr_type);
+ int highest_vector;
unsigned long intr_fields, eflags, interruptibility, cpu_exec_control;
-
+ struct vcpu *v = current;
+
+ highest_vector = find_highest_pending_irq(v, &intr_type);
__vmread(CPU_BASED_VM_EXEC_CONTROL, &cpu_exec_control);
if (highest_vector == -1) {
@@ -714,7 +716,6 @@
ASSERT(!test_bit(ARCH_VMX_IO_WAIT, &d->arch.arch_vmx.flags));
/* We always check for interrupts before resuming guest */
- vmx_intr_assist(d);
}
#endif /* CONFIG_VMX */
diff -r 3a8f27c6d56c -r c5ef23281be2 xen/arch/x86/x86_32/entry.S
--- a/xen/arch/x86/x86_32/entry.S Mon Aug 22 18:00:37 2005
+++ b/xen/arch/x86/x86_32/entry.S Mon Aug 22 18:04:05 2005
@@ -140,6 +140,7 @@
jnz 2f
/* vmx_restore_all_guest */
+ call vmx_intr_assist
call load_cr2
.endif
VMX_RESTORE_ALL_NOSEGREGS
diff -r 3a8f27c6d56c -r c5ef23281be2 xen/arch/x86/x86_64/entry.S
--- a/xen/arch/x86/x86_64/entry.S Mon Aug 22 18:00:37 2005
+++ b/xen/arch/x86/x86_64/entry.S Mon Aug 22 18:04:05 2005
@@ -233,6 +233,7 @@
jnz 2f
/* vmx_restore_all_guest */
+ call vmx_intr_assist
call load_cr2
.endif
/*
diff -r 3a8f27c6d56c -r c5ef23281be2 xen/include/asm-x86/vmx.h
--- a/xen/include/asm-x86/vmx.h Mon Aug 22 18:00:37 2005
+++ b/xen/include/asm-x86/vmx.h Mon Aug 22 18:04:05 2005
@@ -31,7 +31,7 @@
extern void vmx_asm_vmexit_handler(struct cpu_user_regs);
extern void vmx_asm_do_resume(void);
extern void vmx_asm_do_launch(void);
-extern void vmx_intr_assist(struct vcpu *d);
+extern void vmx_intr_assist();
extern void arch_vmx_do_launch(struct vcpu *);
extern void arch_vmx_do_resume(struct vcpu *);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|