diff --git a/[refs] b/[refs] index f054d7029195..2c8e20f9d05c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9a3aad70572c3f4d55e7f09ac4eb313d41d0a484 +refs/heads/master: 3444d7da1839b851eefedd372978d8a982316c36 diff --git a/trunk/arch/x86/kvm/vmx.c b/trunk/arch/x86/kvm/vmx.c index 2fdcc9819f36..27a0222c2946 100644 --- a/trunk/arch/x86/kvm/vmx.c +++ b/trunk/arch/x86/kvm/vmx.c @@ -185,6 +185,7 @@ static void kvm_cpu_vmxoff(void); static DEFINE_PER_CPU(struct vmcs *, vmxarea); static DEFINE_PER_CPU(struct vmcs *, current_vmcs); static DEFINE_PER_CPU(struct list_head, vcpus_on_cpu); +static DEFINE_PER_CPU(struct desc_ptr, host_gdt); static unsigned long *vmx_io_bitmap_a; static unsigned long *vmx_io_bitmap_b; @@ -871,6 +872,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx) #endif if (current_thread_info()->status & TS_USEDFPU) clts(); + load_gdt(&__get_cpu_var(host_gdt)); } static void vmx_load_host_state(struct vcpu_vmx *vmx) @@ -1379,6 +1381,8 @@ static int hardware_enable(void *garbage) ept_sync_global(); } + store_gdt(&__get_cpu_var(host_gdt)); + return 0; }