| From f2df9aeeaee637dad3fb1c22420b7fd685380dc3 Mon Sep 17 00:00:00 2001 |
| From: David S. Miller <davem@davemloft.net> |
| Date: Wed, 23 Jul 2008 16:21:07 -0700 |
| Subject: sparc64: Fix cpufreq notifier registry. |
| |
| From: David S. Miller <davem@davemloft.net> |
| |
| [ Upstream commit 7ae93f51d7fa8b9130d47e0b7d17979a165c5bc3 ] |
| |
| Based upon a report by Daniel Smolik. |
| |
| We do it too early, which triggers a BUG in |
| cpufreq_register_notifier(). |
| |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| arch/sparc64/kernel/time.c | 15 ++++++++++----- |
| 1 file changed, 10 insertions(+), 5 deletions(-) |
| |
| --- a/arch/sparc64/kernel/time.c |
| +++ b/arch/sparc64/kernel/time.c |
| @@ -883,6 +883,16 @@ static struct notifier_block sparc64_cpu |
| .notifier_call = sparc64_cpufreq_notifier |
| }; |
| |
| +static int __init register_sparc64_cpufreq_notifier(void) |
| +{ |
| + |
| + cpufreq_register_notifier(&sparc64_cpufreq_notifier_block, |
| + CPUFREQ_TRANSITION_NOTIFIER); |
| + return 0; |
| +} |
| + |
| +core_initcall(register_sparc64_cpufreq_notifier); |
| + |
| #endif /* CONFIG_CPU_FREQ */ |
| |
| static int sparc64_next_event(unsigned long delta, |
| @@ -1049,11 +1059,6 @@ void __init time_init(void) |
| sparc64_clockevent.mult, sparc64_clockevent.shift); |
| |
| setup_sparc64_timer(); |
| - |
| -#ifdef CONFIG_CPU_FREQ |
| - cpufreq_register_notifier(&sparc64_cpufreq_notifier_block, |
| - CPUFREQ_TRANSITION_NOTIFIER); |
| -#endif |
| } |
| |
| unsigned long long sched_clock(void) |