diff options
Diffstat (limited to 'arch/x86_64/kernel/apic.c')
-rw-r--r-- | arch/x86_64/kernel/apic.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/apic.c b/arch/x86_64/kernel/apic.c index e5b14c57eaa0..d70605eda333 100644 --- a/arch/x86_64/kernel/apic.c +++ b/arch/x86_64/kernel/apic.c | |||
@@ -962,12 +962,14 @@ void smp_apic_timer_interrupt(struct pt_regs *regs) | |||
962 | irq_exit(); | 962 | irq_exit(); |
963 | } | 963 | } |
964 | 964 | ||
965 | int __initdata unsync_tsc_on_multicluster; | ||
966 | |||
965 | /* | 967 | /* |
966 | * oem_force_hpet_timer -- force HPET mode for some boxes. | 968 | * oem_force_hpet_timer -- force HPET mode for some boxes. |
967 | * | 969 | * |
968 | * Thus far, the major user of this is IBM's Summit2 series: | 970 | * Thus far, the major user of this is IBM's Summit2 series: |
969 | * | 971 | * |
970 | * Clustered boxes may have unsynced TSC problems if they are | 972 | * Some clustered boxes may have unsynced TSC problems if they are |
971 | * multi-chassis. Use available data to take a good guess. | 973 | * multi-chassis. Use available data to take a good guess. |
972 | * If in doubt, go HPET. | 974 | * If in doubt, go HPET. |
973 | */ | 975 | */ |
@@ -977,6 +979,11 @@ __cpuinit int oem_force_hpet_timer(void) | |||
977 | unsigned id; | 979 | unsigned id; |
978 | DECLARE_BITMAP(clustermap, NUM_APIC_CLUSTERS); | 980 | DECLARE_BITMAP(clustermap, NUM_APIC_CLUSTERS); |
979 | 981 | ||
982 | /* Only do this check on IBM machines - big Unisys systems | ||
983 | use multiple clusters too, but have synchronized TSC */ | ||
984 | if (!unsync_tsc_on_multicluster) | ||
985 | return 0; | ||
986 | |||
980 | bitmap_zero(clustermap, NUM_APIC_CLUSTERS); | 987 | bitmap_zero(clustermap, NUM_APIC_CLUSTERS); |
981 | 988 | ||
982 | for (i = 0; i < NR_CPUS; i++) { | 989 | for (i = 0; i < NR_CPUS; i++) { |