x86/time: also use rdtsc_ordered() in check_tsc_warp() This really was meant to be added in a v2 of what became commit fa74e70500 ("x86/time: introduce and use rdtsc_ordered()"). Signed-off-by: Jan Beulich --- Noticed while backporting. --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -1146,16 +1146,13 @@ static void local_time_calibration(void) */ static void check_tsc_warp(unsigned long tsc_khz, unsigned long *max_warp) { -#define rdtsc_barrier() mb() static DEFINE_SPINLOCK(sync_lock); static cycles_t last_tsc; cycles_t start, now, prev, end; int i; - rdtsc_barrier(); - start = get_cycles(); - rdtsc_barrier(); + start = rdtsc_ordered(); /* The measurement runs for 20 msecs: */ end = start + tsc_khz * 20ULL; @@ -1170,9 +1167,7 @@ static void check_tsc_warp(unsigned long */ spin_lock(&sync_lock); prev = last_tsc; - rdtsc_barrier(); - now = get_cycles(); - rdtsc_barrier(); + now = rdtsc_ordered(); last_tsc = now; spin_unlock(&sync_lock);