mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-02 19:56:43 +07:00
KVM: VMX: Optimize vmx_get_cpl()
Instead of calling vmx_get_segment() (which reads a whole bunch of vmcs fields), read only the cs selector which contains the cpl. Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
07708c4af1
commit
eab4b8aa34
@ -1773,16 +1773,13 @@ static void vmx_get_segment(struct kvm_vcpu *vcpu,
|
||||
|
||||
static int vmx_get_cpl(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
struct kvm_segment kvm_seg;
|
||||
|
||||
if (!(vcpu->arch.cr0 & X86_CR0_PE)) /* if real mode */
|
||||
return 0;
|
||||
|
||||
if (vmx_get_rflags(vcpu) & X86_EFLAGS_VM) /* if virtual 8086 */
|
||||
return 3;
|
||||
|
||||
vmx_get_segment(vcpu, &kvm_seg, VCPU_SREG_CS);
|
||||
return kvm_seg.selector & 3;
|
||||
return vmcs_read16(GUEST_CS_SELECTOR) & 3;
|
||||
}
|
||||
|
||||
static u32 vmx_segment_access_rights(struct kvm_segment *var)
|
||||
|
Loading…
Reference in New Issue
Block a user