KVM: nVMX: correctly set tr base on nested vmexit emulation
PATCH 1/1 KVM: nVMX: correctly set tr base on nested vmexit emulation
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
arch/x86/kvm/vmx.c +1 -1
@@ -8261,7 +8261,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 ,
--
Gleb.
Yes, I have just retraced and found the bug. This is my negligence.
Quoted 20 lines · Gleb Natapov
After commit
21feb4eb64e21f8dc91136b91ee886b978ce6421tr base is zeroed during vmexit. Set it to L1'sHOST_TR_BASE. This should fix
https://bugzilla.kernel.org/show_bug.cgi?id=60679Signed-off-by Gleb Natapov <[email protected]>arch/x86/kvm/vmx.c +1
-2@@ -8261,7 +8261,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 , -- Gleb.
Signature · 5 lines
Arthur Chunqi Li Department of Computer Science School of EECS Peking University Beijing, China
Quoted 2 lines · Arthur Chunqi Li
Yes, I have just retraced and found the bug. This is my negligence.
Reviewers could have done a better job too :)
Quoted 7 lines
Reviewed-by Arthur Chunqi Li <[email protected]>Quoted 4 lines · Gleb Natapov
After commit
21feb4eb64e21f8dc91136b91ee886b978ce6421tr base is zeroed during vmexit. Set it to L1'sHOST_TR_BASE. This should fix
https://bugzilla.kernel.org/show_bug.cgi?id=60679
Quoted 25 lines
Quoted 16 lines
Signed-off-by Gleb Natapov <[email protected]>arch/x86/kvm/vmx.c +1
-2@@ -8261,7 +8261,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 , -- Gleb.Signature · 5 lines
Arthur Chunqi Li Department of Computer Science School of EECS Peking University Beijing, China
--
Gleb.
Quoted 8 lines
-----Original Message-----
From: Gleb Natapov [mailto:[email protected]]
Sent: Sunday, August 04, 2013 8:08 PM
To: [email protected]
Cc: Ren, Yongjie; [email protected]; [email protected]
Subject: [PATCH] KVM: nVMX: correctly set tr base on nested vmexit emulation
Quoted 5 lines
After commit
21feb4eb64e21f8dc91136b91ee886b978ce6421tr base is zeroed
during vmexit. Set it to L1'sHOST_TR_BASE. This should fix
https://bugzilla.kernel.org/show_bug.cgi?id=60679
Yes, your patch can fix this bug I reported.
Quoted 17 lines
Signed-off-by Gleb Natapov <[email protected]>arch/x86/kvm/vmx.c +1
-1@@ -8261,7 +8261,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,
--
Gleb.
Quoted 19 lines · Gleb Natapov
After commit
21feb4eb64e21f8dc91136b91ee886b978ce6421tr base is zeroed during vmexit. Set it to L1'sHOST_TR_BASE. This should fix
https://bugzilla.kernel.org/show_bug.cgi?id=60679Signed-off-by Gleb Natapov <[email protected]>arch/x86/kvm/vmx.c +1
-2@@ -8261,7 +8261,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 , --
Quoted 6 lines
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Applied, thanks.
Paolo