[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 2/5] x86/HVM: hide SVM/VMX when their enabling is prohibited by firmware
On Thu, Nov 16, 2023 at 02:31:05PM +0100, Jan Beulich wrote: > ... or we fail to enable the functionality on the BSP for other reasons. > The only place where hardware announcing the feature is recorded is the > raw CPU policy/featureset. > > Inspired by > https://lore.kernel.org/all/20230921114940.957141-1-pbonzini@xxxxxxxxxx/. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > > --- a/xen/arch/x86/hvm/svm/svm.c > +++ b/xen/arch/x86/hvm/svm/svm.c > @@ -2543,6 +2543,7 @@ const struct hvm_function_table * __init > > if ( _svm_cpu_up(true) ) > { > + setup_clear_cpu_cap(X86_FEATURE_SVM); > printk("SVM: failed to initialise.\n"); > return NULL; > } > --- a/xen/arch/x86/hvm/vmx/vmcs.c > +++ b/xen/arch/x86/hvm/vmx/vmcs.c > @@ -2163,6 +2163,23 @@ int __init vmx_vmcs_init(void) > > if ( !ret ) > register_keyhandler('v', vmcs_dump, "dump VT-x VMCSs", 1); > + else > + { > + setup_clear_cpu_cap(X86_FEATURE_VMX); > + > + /* > + * _vmx_vcpu_up() may have made it past feature identification. > + * Make sure all dependent features are off as well. > + */ > + vmx_basic_msr = 0; > + vmx_pin_based_exec_control = 0; > + vmx_cpu_based_exec_control = 0; > + vmx_secondary_exec_control = 0; > + vmx_vmexit_control = 0; > + vmx_vmentry_control = 0; > + vmx_ept_vpid_cap = 0; > + vmx_vmfunc = 0; Are there really any usages of those variables if VMX is disabled in CPUID? Thanks, Roger.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |