ia64/xen-unstable

changeset 6543:c5ef23281be2

Remove the redundant call to vmx_intr_assit when we do a domain switch.

Signed-off-by: Eddie Dong <eddie.dong@intel.com>
Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>
author adsharma@los-vmm.sc.intel.com
date Mon Aug 22 11:04:05 2005 -0700 (2005-08-22)
parents 3a8f27c6d56c
children 20bbe519f743
files xen/arch/x86/vmx.c xen/arch/x86/vmx_io.c xen/arch/x86/x86_32/entry.S xen/arch/x86/x86_64/entry.S xen/include/asm-x86/vmx.h
line diff
     1.1 --- a/xen/arch/x86/vmx.c	Mon Aug 22 11:00:37 2005 -0700
     1.2 +++ b/xen/arch/x86/vmx.c	Mon Aug 22 11:04:05 2005 -0700
     1.3 @@ -1713,7 +1713,6 @@ asmlinkage void vmx_vmexit_handler(struc
     1.4          __vmx_bug(&regs);       /* should not happen */
     1.5      }
     1.6  
     1.7 -    vmx_intr_assist(v);
     1.8      return;
     1.9  }
    1.10  
     2.1 --- a/xen/arch/x86/vmx_io.c	Mon Aug 22 11:00:37 2005 -0700
     2.2 +++ b/xen/arch/x86/vmx_io.c	Mon Aug 22 11:04:05 2005 -0700
     2.3 @@ -631,12 +631,14 @@ static inline int irq_masked(unsigned lo
     2.4      return ((eflags & X86_EFLAGS_IF) == 0);
     2.5  }
     2.6  
     2.7 -void vmx_intr_assist(struct vcpu *v) 
     2.8 +asmlinkage void vmx_intr_assist() 
     2.9  {
    2.10      int intr_type = 0;
    2.11 -    int highest_vector = find_highest_pending_irq(v, &intr_type);
    2.12 +    int highest_vector;
    2.13      unsigned long intr_fields, eflags, interruptibility, cpu_exec_control;
    2.14 +    struct vcpu *v = current;
    2.15  
    2.16 +    highest_vector = find_highest_pending_irq(v, &intr_type);
    2.17      __vmread(CPU_BASED_VM_EXEC_CONTROL, &cpu_exec_control);
    2.18  
    2.19      if (highest_vector == -1) {
    2.20 @@ -714,7 +716,6 @@ void vmx_do_resume(struct vcpu *d)
    2.21      ASSERT(!test_bit(ARCH_VMX_IO_WAIT, &d->arch.arch_vmx.flags));
    2.22  
    2.23      /* We always check for interrupts before resuming guest */
    2.24 -    vmx_intr_assist(d);
    2.25  }
    2.26  
    2.27  #endif /* CONFIG_VMX */
     3.1 --- a/xen/arch/x86/x86_32/entry.S	Mon Aug 22 11:00:37 2005 -0700
     3.2 +++ b/xen/arch/x86/x86_32/entry.S	Mon Aug 22 11:04:05 2005 -0700
     3.3 @@ -140,6 +140,7 @@ 1:
     3.4          jnz 2f
     3.5  
     3.6  /* vmx_restore_all_guest */
     3.7 +        call vmx_intr_assist
     3.8          call load_cr2
     3.9          .endif
    3.10          VMX_RESTORE_ALL_NOSEGREGS
     4.1 --- a/xen/arch/x86/x86_64/entry.S	Mon Aug 22 11:00:37 2005 -0700
     4.2 +++ b/xen/arch/x86/x86_64/entry.S	Mon Aug 22 11:04:05 2005 -0700
     4.3 @@ -233,6 +233,7 @@ 1:
     4.4          jnz  2f 
     4.5  
     4.6  /* vmx_restore_all_guest */
     4.7 +        call vmx_intr_assist
     4.8          call load_cr2
     4.9          .endif
    4.10          /* 
     5.1 --- a/xen/include/asm-x86/vmx.h	Mon Aug 22 11:00:37 2005 -0700
     5.2 +++ b/xen/include/asm-x86/vmx.h	Mon Aug 22 11:04:05 2005 -0700
     5.3 @@ -31,7 +31,7 @@
     5.4  extern void vmx_asm_vmexit_handler(struct cpu_user_regs);
     5.5  extern void vmx_asm_do_resume(void);
     5.6  extern void vmx_asm_do_launch(void);
     5.7 -extern void vmx_intr_assist(struct vcpu *d);
     5.8 +extern void vmx_intr_assist();
     5.9  
    5.10  extern void arch_vmx_do_launch(struct vcpu *);
    5.11  extern void arch_vmx_do_resume(struct vcpu *);