KVM: nVMX: correctly set tr base on nested vmexit emulation
authorGleb Natapov <gleb@redhat.com>
Sun, 4 Aug 2013 12:08:06 +0000 (15:08 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 7 Aug 2013 13:57:32 +0000 (15:57 +0200)
After commit 21feb4eb64e21f8dc91136b91ee886b978ce6421 tr base is zeroed
during vmexit. Set it to L1's HOST_TR_BASE. This should fix
https://bugzilla.kernel.org/show_bug.cgi?id=60679

Reported-by: Yongjie Ren <yongjie.ren@intel.com>
Reviewed-by: Arthur Chunqi Li <yzt356@gmail.com>
Tested-by: Yongjie Ren <yongjie.ren@intel.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx.c

index c143f40..30974c3 100644 (file)
@@ -8069,7 +8069,7 @@ static void load_vmcs12_host_state(struct kvm_vcpu *vcpu,
        seg.base = vmcs12->host_gs_base;
        vmx_set_segment(vcpu, &seg, VCPU_SREG_GS);
        seg = (struct kvm_segment) {
-               .base = 0,
+               .base = vmcs12->host_tr_base,
                .limit = 0x67,
                .selector = vmcs12->host_tr_selector,
                .type = 11,