From: Andrew Cooper Date: Mon, 15 May 2023 15:59:25 +0000 (+0100) Subject: x86/vtx: Remove opencoded MSR_ARCH_CAPS check X-Git-Tag: RELEASE-4.16.5~25 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=6a007c521c2d3dcce56b7454d779c28ce720ac3d;p=xen.git x86/vtx: Remove opencoded MSR_ARCH_CAPS check MSR_ARCH_CAPS data is now included in featureset information. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich (cherry picked from commit 8f6bc7f9b72eb7cf0c8c5ae5d80498a58ba0b7c3) --- diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index a75bdde4ff..6c35812d05 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -2779,8 +2779,6 @@ static void __init ler_to_fixup_check(void); */ static bool __init has_if_pschange_mc(void) { - uint64_t caps = 0; - /* * If we are virtualised, there is nothing we can do. Our EPT tables are * shadowed by our hypervisor, and not walked by hardware. @@ -2788,10 +2786,8 @@ static bool __init has_if_pschange_mc(void) if ( cpu_has_hypervisor ) return false; - if ( cpu_has_arch_caps ) - rdmsrl(MSR_ARCH_CAPABILITIES, caps); - - if ( caps & ARCH_CAPS_IF_PSCHANGE_MC_NO ) + /* Hardware reports itself as fixed. */ + if ( cpu_has_if_pschange_mc_no ) return false; /* diff --git a/xen/include/asm-x86/cpufeature.h b/xen/include/asm-x86/cpufeature.h index 35fae5d649..ef4eedcaed 100644 --- a/xen/include/asm-x86/cpufeature.h +++ b/xen/include/asm-x86/cpufeature.h @@ -143,6 +143,9 @@ #define cpu_has_avx_vnni boot_cpu_has(X86_FEATURE_AVX_VNNI) #define cpu_has_avx512_bf16 boot_cpu_has(X86_FEATURE_AVX512_BF16) +/* MSR_ARCH_CAPS */ +#define cpu_has_if_pschange_mc_no boot_cpu_has(X86_FEATURE_IF_PSCHANGE_MC_NO) + /* Synthesized. */ #define cpu_has_arch_perfmon boot_cpu_has(X86_FEATURE_ARCH_PERFMON) #define cpu_has_cpuid_faulting boot_cpu_has(X86_FEATURE_CPUID_FAULTING)