aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/kvm/cpuid.h
diff options
context:
space:
mode:
authorGravatar Binbin Wu <binbin.wu@linux.intel.com> 2023-09-13 20:42:24 +0800
committerGravatar Sean Christopherson <seanjc@google.com> 2023-11-28 17:54:09 -0800
commit183bdd161c2b773a62f01d1c030f5a3a5b7c33b5 (patch)
tree7dd91a109e258ba29e2d57e889e7edea8860eee2 /arch/x86/kvm/cpuid.h
parentKVM: x86: Advertise and enable LAM (user and supervisor) (diff)
downloadlinux-183bdd161c2b773a62f01d1c030f5a3a5b7c33b5.tar.gz
linux-183bdd161c2b773a62f01d1c030f5a3a5b7c33b5.tar.bz2
linux-183bdd161c2b773a62f01d1c030f5a3a5b7c33b5.zip
KVM: x86: Use KVM-governed feature framework to track "LAM enabled"
Use the governed feature framework to track if Linear Address Masking (LAM) is "enabled", i.e. if LAM can be used by the guest. Using the framework to avoid the relative expensive call guest_cpuid_has() during cr3 and vmexit handling paths for LAM. No functional change intended. Signed-off-by: Binbin Wu <binbin.wu@linux.intel.com> Tested-by: Xuelian Guo <xuelian.guo@intel.com> Link: https://lore.kernel.org/r/20230913124227.12574-14-binbin.wu@linux.intel.com Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'arch/x86/kvm/cpuid.h')
-rw-r--r--arch/x86/kvm/cpuid.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h
index e4bd59c15a2c..856e3037e74f 100644
--- a/arch/x86/kvm/cpuid.h
+++ b/arch/x86/kvm/cpuid.h
@@ -276,8 +276,7 @@ static __always_inline bool guest_can_use(struct kvm_vcpu *vcpu,
static inline bool kvm_vcpu_is_legal_cr3(struct kvm_vcpu *vcpu, unsigned long cr3)
{
- if (kvm_cpu_cap_has(X86_FEATURE_LAM) &&
- guest_cpuid_has(vcpu, X86_FEATURE_LAM))
+ if (guest_can_use(vcpu, X86_FEATURE_LAM))
cr3 &= ~(X86_CR3_LAM_U48 | X86_CR3_LAM_U57);
return kvm_vcpu_is_legal_gpa(vcpu, cr3);