summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/vmx.c
diff options
context:
space:
mode:
authorGleb Natapov2012-12-12 18:10:49 +0100
committerGleb Natapov2012-12-23 13:00:36 +0100
commit07f42f5f25dc214a33214159fc8b62b984b713eb (patch)
tree502bece6c0a8dc7da1bd668b49493681787a8941 /arch/x86/kvm/vmx.c
parentkvm: Fix memory slot generation updates (diff)
downloadkernel-qcow2-linux-07f42f5f25dc214a33214159fc8b62b984b713eb.tar.gz
kernel-qcow2-linux-07f42f5f25dc214a33214159fc8b62b984b713eb.tar.xz
kernel-qcow2-linux-07f42f5f25dc214a33214159fc8b62b984b713eb.zip
KVM: VMX: cleanup rmode_segment_valid()
Set segment fields explicitly instead of using binary operations. No behaviour changes. Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Gleb Natapov <gleb@redhat.com>
Diffstat (limited to 'arch/x86/kvm/vmx.c')
-rw-r--r--arch/x86/kvm/vmx.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index b3101e368079..265fdd37b240 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -3380,13 +3380,16 @@ static bool rmode_segment_valid(struct kvm_vcpu *vcpu, int seg)
u32 ar;
vmx_get_segment(vcpu, &var, seg);
+ var.dpl = 0x3;
+ var.g = 0;
+ var.db = 0;
ar = vmx_segment_access_rights(&var);
if (var.base != (var.selector << 4))
return false;
if (var.limit < 0xffff)
return false;
- if (((ar | (3 << AR_DPL_SHIFT)) & ~(AR_G_MASK | AR_DB_MASK)) != 0xf3)
+ if (ar != 0xf3)
return false;
return true;