aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/kernel/time.c')
-rw-r--r--arch/x86_64/kernel/time.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86_64/kernel/time.c b/arch/x86_64/kernel/time.c
index 3cc6886f1fb7..8cb2b2d35f5d 100644
--- a/arch/x86_64/kernel/time.c
+++ b/arch/x86_64/kernel/time.c
@@ -944,12 +944,23 @@ void __init time_init(void)
944#endif 944#endif
945} 945}
946 946
947static int tsc_unstable = 0;
948
949void mark_tsc_unstable(void)
950{
951 tsc_unstable = 1;
952}
953EXPORT_SYMBOL_GPL(mark_tsc_unstable);
954
947/* 955/*
948 * Make an educated guess if the TSC is trustworthy and synchronized 956 * Make an educated guess if the TSC is trustworthy and synchronized
949 * over all CPUs. 957 * over all CPUs.
950 */ 958 */
951__cpuinit int unsynchronized_tsc(void) 959__cpuinit int unsynchronized_tsc(void)
952{ 960{
961 if (tsc_unstable)
962 return 1;
963
953#ifdef CONFIG_SMP 964#ifdef CONFIG_SMP
954 if (apic_is_clustered_box()) 965 if (apic_is_clustered_box())
955 return 1; 966 return 1;