Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=83ff3b9d4a0ade8f8eb9757fd4b36c501ba161e4
Commit:     83ff3b9d4a0ade8f8eb9757fd4b36c501ba161e4
Parent:     0771671749b59a507b6da4efb931c44d9691e248
Author:     Sheng Yang <[EMAIL PROTECTED]>
AuthorDate: Wed Nov 21 14:33:25 2007 +0800
Committer:  Avi Kivity <[EMAIL PROTECTED]>
CommitDate: Wed Jan 30 17:53:14 2008 +0200

    KVM: VMX: Remove the secondary execute control dependency on irqchip
    
    The state of SECONDARY_VM_EXEC_CONTROL shouldn't depend on in-kernel IRQ 
chip,
    this patch fix this.
    
    Signed-off-by: Sheng Yang <[EMAIL PROTECTED]>
    Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>
---
 drivers/kvm/vmx.c |   17 +++++++----------
 1 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index b4c0bdc..fc5e7c8 100644
--- a/drivers/kvm/vmx.c
+++ b/drivers/kvm/vmx.c
@@ -193,11 +193,6 @@ static inline int cpu_has_secondary_exec_ctrls(void)
                CPU_BASED_ACTIVATE_SECONDARY_CONTROLS);
 }
 
-static inline int vm_need_secondary_exec_ctrls(struct kvm *kvm)
-{
-       return ((cpu_has_secondary_exec_ctrls()) && (irqchip_in_kernel(kvm)));
-}
-
 static inline int cpu_has_vmx_virtualize_apic_accesses(void)
 {
        return (vmcs_config.cpu_based_2nd_exec_ctrl &
@@ -1524,13 +1519,15 @@ static int vmx_vcpu_setup(struct vcpu_vmx *vmx)
                                CPU_BASED_CR8_LOAD_EXITING;
 #endif
        }
-       if (!vm_need_secondary_exec_ctrls(vmx->vcpu.kvm))
-               exec_control &= ~CPU_BASED_ACTIVATE_SECONDARY_CONTROLS;
        vmcs_write32(CPU_BASED_VM_EXEC_CONTROL, exec_control);
 
-       if (vm_need_secondary_exec_ctrls(vmx->vcpu.kvm))
-               vmcs_write32(SECONDARY_VM_EXEC_CONTROL,
-                            vmcs_config.cpu_based_2nd_exec_ctrl);
+       if (cpu_has_secondary_exec_ctrls()) {
+               exec_control = vmcs_config.cpu_based_2nd_exec_ctrl;
+               if (!vm_need_virtualize_apic_accesses(vmx->vcpu.kvm))
+                       exec_control &=
+                               ~SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES;
+               vmcs_write32(SECONDARY_VM_EXEC_CONTROL, exec_control);
+       }
 
        vmcs_write32(PAGE_FAULT_ERROR_CODE_MASK, !!bypass_guest_pf);
        vmcs_write32(PAGE_FAULT_ERROR_CODE_MATCH, !!bypass_guest_pf);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to