KVM: VMX: Some minor changes to code structure
Dongxiao Xu [Tue, 11 May 2010 10:29:42 +0000 (18:29 +0800)]
Do some preparations for vmm coexistence support.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

arch/x86/kvm/vmx.c

index 8232888..0d281db 100644 (file)
@@ -845,15 +845,8 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
        struct vcpu_vmx *vmx = to_vmx(vcpu);
        u64 tsc_this, delta, new_offset;
 
-       if (vcpu->cpu != cpu) {
+       if (vcpu->cpu != cpu)
                vcpu_clear(vmx);
-               kvm_migrate_timers(vcpu);
-               set_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests);
-               local_irq_disable();
-               list_add(&vmx->local_vcpus_link,
-                        &per_cpu(vcpus_on_cpu, cpu));
-               local_irq_enable();
-       }
 
        if (per_cpu(current_vmcs, cpu) != vmx->vmcs) {
                per_cpu(current_vmcs, cpu) = vmx->vmcs;
@@ -864,6 +857,13 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
                struct desc_ptr dt;
                unsigned long sysenter_esp;
 
+               kvm_migrate_timers(vcpu);
+               set_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests);
+               local_irq_disable();
+               list_add(&vmx->local_vcpus_link,
+                        &per_cpu(vcpus_on_cpu, cpu));
+               local_irq_enable();
+
                vcpu->cpu = cpu;
                /*
                 * Linux uses per-cpu TSS and GDT, so set these when switching