Skip to content

Commit

Permalink
KVM: VMX: Ignore segment G and D bits when considering whether we can…
Browse files Browse the repository at this point in the history
… virtualize

We will enter the guest with G and D cleared; as real hardware ignores D in
real mode, and G is taken care of by the limit test, we allow more code to
run in vm86 mode.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
  • Loading branch information
Avi Kivity authored and Marcelo Tosatti committed Aug 27, 2012
1 parent ce56680 commit a81aba1
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion arch/x86/kvm/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -3320,7 +3320,7 @@ static bool rmode_segment_valid(struct kvm_vcpu *vcpu, int seg)
return false;
if (var.limit < 0xffff)
return false;
if ((ar | (3 << AR_DPL_SHIFT)) != 0xf3)
if (((ar | (3 << AR_DPL_SHIFT)) & ~(AR_G_MASK | AR_DB_MASK)) != 0xf3)
return false;

return true;
Expand Down

0 comments on commit a81aba1

Please sign in to comment.