Re: [PATCH v8 3/6] KVM: x86: Virtualize CR3.LAM_{U48,U57}

From: Chao Gao
Date: Wed May 10 2023 - 04:59:11 EST


>@@ -7743,6 +7744,9 @@ static void vmx_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu)
> vmx->msr_ia32_feature_control_valid_bits &=
> ~FEAT_CTL_SGX_LC_ENABLED;
>
>+ if (guest_cpuid_has(vcpu, X86_FEATURE_LAM))
>+ vcpu->arch.cr3_ctrl_bits |= X86_CR3_LAM_U48 | X86_CR3_LAM_U57;

This function can be called multiple times. We need to clear LAM bits if LAM
isn't exposed to the guest, i.e.,

else
vcpu->arch.cr3_ctrl_bits &= ~(X86_CR3_LAM_U48 | X86_CR3_LAM_U57);

With this fixed,

Reviewed-by: Chao Gao <chao.gao@xxxxxxxxx>