KVM: VMX: Return correct CPL during transition to protected mode
authorAvi Kivity <avi@redhat.com>
Wed, 6 Jun 2012 15:36:48 +0000 (18:36 +0300)
committerAvi Kivity <avi@redhat.com>
Mon, 9 Jul 2012 11:19:00 +0000 (14:19 +0300)
commitd881e6f6cffe3993245963143cab2528f918e071
treee5a84dc9865e47e54a2f97fc57d2762bda45c742
parente676505ac96813e8b93170b1f5e5ffe0cf6a2348
KVM: VMX: Return correct CPL during transition to protected mode

In protected mode, the CPL is defined as the lower two bits of CS, as set by
the last far jump.  But during the transition to protected mode, there is no
last far jump, so we need to return zero (the inherited real mode CPL).

Fix by reading CPL from the cache during the transition.  This isn't 100%
correct since we don't set the CPL cache on a far jump, but since protected
mode transition will always jump to a segment with RPL=0, it will always
work.

Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/vmx.c