Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eab4b8aa authored by Avi Kivity's avatar Avi Kivity
Browse files

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: default avatarAvi Kivity <avi@redhat.com>
parent 07708c4a
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -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)