KVM: VMX: cleanup rmode_segment_valid()
authorGleb Natapov <gleb@redhat.com>
Wed, 12 Dec 2012 17:10:49 +0000 (19:10 +0200)
committerGleb Natapov <gleb@redhat.com>
Sun, 23 Dec 2012 12:00:36 +0000 (14:00 +0200)
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>
arch/x86/kvm/vmx.c

index b3101e3..265fdd3 100644 (file)
@@ -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;