aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/vmx.c
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2013-01-21 08:36:46 -0500
committerMarcelo Tosatti <mtosatti@redhat.com>2013-01-23 21:40:28 -0500
commit25391454e73e3156202264eb3c473825afe4bc94 (patch)
tree0da5b484830685afe4332a0ffc308087a8cf2b26 /arch/x86/kvm/vmx.c
parent218e763f458c44f30041c1b48b4371e130fd4317 (diff)
KVM: VMX: don't clobber segment AR of unusable segments.
Usability is returned in unusable field, so not need to clobber entire AR. Callers have to know how to deal with unusable segments already since if emulate_invalid_guest_state=true AR is not zeroed. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/kvm/vmx.c')
-rw-r--r--arch/x86/kvm/vmx.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 319e840e2ada..77212d1e1df9 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -3196,8 +3196,6 @@ static void vmx_get_segment(struct kvm_vcpu *vcpu,
3196 var->limit = vmx_read_guest_seg_limit(vmx, seg); 3196 var->limit = vmx_read_guest_seg_limit(vmx, seg);
3197 var->selector = vmx_read_guest_seg_selector(vmx, seg); 3197 var->selector = vmx_read_guest_seg_selector(vmx, seg);
3198 ar = vmx_read_guest_seg_ar(vmx, seg); 3198 ar = vmx_read_guest_seg_ar(vmx, seg);
3199 if ((ar & AR_UNUSABLE_MASK) && !emulate_invalid_guest_state)
3200 ar = 0;
3201 var->type = ar & 15; 3199 var->type = ar & 15;
3202 var->s = (ar >> 4) & 1; 3200 var->s = (ar >> 4) & 1;
3203 var->dpl = (ar >> 5) & 3; 3201 var->dpl = (ar >> 5) & 3;