diff options
Diffstat (limited to 'arch/x86_64/kernel/time.c')
-rw-r--r-- | arch/x86_64/kernel/time.c | 11 |
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 | ||
947 | static int tsc_unstable = 0; | ||
948 | |||
949 | void mark_tsc_unstable(void) | ||
950 | { | ||
951 | tsc_unstable = 1; | ||
952 | } | ||
953 | EXPORT_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; |