summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-08-24 20:52:06 +0200
committerH. Peter Anvin <hpa@zytor.com>2008-08-25 02:16:28 +0200
commit060700b571717c997a2ea5e2049b848fa248ee13 (patch)
tree46bdd7a9eb5cbb95458fc9839270d2e503fa6c4c /arch
parentx86 MCE: Fix CPU hotplug problem with multiple multicore AMD CPUs (diff)
downloadlinux-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.c4
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;