diff options
| -rw-r--r-- | arch/x86/kernel/tsc.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c index 4b9ea101fe3b..098b3cfda72e 100644 --- a/arch/x86/kernel/tsc.c +++ b/arch/x86/kernel/tsc.c @@ -768,7 +768,8 @@ static cycle_t read_tsc(struct clocksource *cs)  static void resume_tsc(struct clocksource *cs)  { -	clocksource_tsc.cycle_last = 0; +	if (!boot_cpu_has(X86_FEATURE_NONSTOP_TSC_S3)) +		clocksource_tsc.cycle_last = 0;  }  static struct clocksource clocksource_tsc = { @@ -939,6 +940,9 @@ static int __init init_tsc_clocksource(void)  		clocksource_tsc.flags &= ~CLOCK_SOURCE_IS_CONTINUOUS;  	} +	if (boot_cpu_has(X86_FEATURE_NONSTOP_TSC_S3)) +		clocksource_tsc.flags |= CLOCK_SOURCE_SUSPEND_NONSTOP; +  	/*  	 * Trust the results of the earlier calibration on systems  	 * exporting a reliable TSC. | 
