diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-08-24 20:52:06 +0200 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2008-08-25 02:16:28 +0200 |
commit | 060700b571717c997a2ea5e2049b848fa248ee13 (patch) | |
tree | 46bdd7a9eb5cbb95458fc9839270d2e503fa6c4c /arch | |
parent | x86 MCE: Fix CPU hotplug problem with multiple multicore AMD CPUs (diff) | |
download | linux-060700b571717c997a2ea5e2049b848fa248ee13.tar.xz linux-060700b571717c997a2ea5e2049b848fa248ee13.zip |
x86: do not enable TSC notifier if we don't need it
Impact: crash on non-TSC-equipped CPUs
Don't enable the TSC notifier if we *either*:
1. don't have a CPU, or
2. have a CPU with constant TSC.
In either of those cases, the notifier is either damaging (1) or useless(2).
From: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/tsc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c index 46af71676738..9bed5cae4bdc 100644 --- a/arch/x86/kernel/tsc.c +++ b/arch/x86/kernel/tsc.c @@ -325,6 +325,10 @@ static struct notifier_block time_cpufreq_notifier_block = { static int __init cpufreq_tsc(void) { + if (!cpu_has_tsc) + return 0; + if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) + return 0; cpufreq_register_notifier(&time_cpufreq_notifier_block, CPUFREQ_TRANSITION_NOTIFIER); return 0; |