x86/time: tsc_check_writability() may need to be run a second time While we shouldn't remove its current invocation, we need to re-run it for the case that the X86_FEATURE_TSC_RELIABLE feature flag has been cleared, in order to avoid using the TSC rendezvous function in case the TSC can't be written. Signed-off-by: Jan Beulich --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -1643,6 +1643,14 @@ static int __init verify_tsc_reliability } /* + * Re-run the TSC writability check if it didn't run to completion, as + * X86_FEATURE_TSC_RELIABLE may have been cleared by now. This is needed + * for determining which rendezvous function to use (below). + */ + if ( !disable_tsc_sync ) + tsc_check_writability(); + + /* * While with constant-rate TSCs the scale factor can be shared, when TSCs * are not marked as 'reliable', re-sync during rendezvous. */