Instead of checking hvm_tsc_scaling_supported inside the hook function,
install the hook only when setting state such that said predicate
becomes true.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Kevin Tian <kevin.tian@intel.com>
static void vmx_setup_tsc_scaling(struct vcpu *v)
{
- if ( !hvm_tsc_scaling_supported || v->domain->arch.vtsc )
+ if ( v->domain->arch.vtsc )
return;
vmx_vmcs_enter(v);
.altp2m_vcpu_emulate_vmfunc = vmx_vcpu_emulate_vmfunc,
.tsc_scaling = {
.max_ratio = VMX_TSC_MULTIPLIER_MAX,
- .setup = vmx_setup_tsc_scaling,
},
};
}
if ( cpu_has_vmx_tsc_scaling )
+ {
vmx_function_table.tsc_scaling.ratio_frac_bits = 48;
+ vmx_function_table.tsc_scaling.setup = vmx_setup_tsc_scaling;
+ }
if ( cpu_has_mpx && cpu_has_vmx_mpx )
{