diff options
author | Dave Jones <davej@redhat.com> | 2006-09-22 19:15:23 -0400 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2006-09-22 19:15:23 -0400 |
commit | ddad65df0048e210c93640b59b3bad12701febb6 (patch) | |
tree | 5530a3fbeef881c48ca02e491529d709dc812ea0 /drivers | |
parent | 8adcc0c674004c0f9467031a93dc639c2b01411f (diff) |
[CPUFREQ] Fix some more CPU hotplug locking.
Lukewarm IQ detected in hotplug locking
BUG: warning at kernel/cpu.c:38/lock_cpu_hotplug()
[<b0134a42>] lock_cpu_hotplug+0x42/0x65
[<b02f8af1>] cpufreq_update_policy+0x25/0xad
[<b0358756>] kprobe_flush_task+0x18/0x40
[<b0355aab>] schedule+0x63f/0x68b
[<b01377c2>] __link_module+0x0/0x1f
[<b0119e7d>] __cond_resched+0x16/0x34
[<b03560bf>] cond_resched+0x26/0x31
[<b0355b0e>] wait_for_completion+0x17/0xb1
[<f965c547>] cpufreq_stat_cpu_callback+0x13/0x20 [cpufreq_stats]
[<f9670074>] cpufreq_stats_init+0x74/0x8b [cpufreq_stats]
[<b0137872>] sys_init_module+0x91/0x174
[<b0102c81>] sysenter_past_esp+0x56/0x79
As there are other places that call cpufreq_update_policy without
the hotplug lock, it seems better to keep the hotplug locking
at the lower level for the time being until this is revamped.
Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/cpufreq/cpufreq_stats.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c index 25eee5394201..c2ecc599dc5f 100644 --- a/drivers/cpufreq/cpufreq_stats.c +++ b/drivers/cpufreq/cpufreq_stats.c | |||
@@ -350,12 +350,10 @@ __init cpufreq_stats_init(void) | |||
350 | } | 350 | } |
351 | 351 | ||
352 | register_hotcpu_notifier(&cpufreq_stat_cpu_notifier); | 352 | register_hotcpu_notifier(&cpufreq_stat_cpu_notifier); |
353 | lock_cpu_hotplug(); | ||
354 | for_each_online_cpu(cpu) { | 353 | for_each_online_cpu(cpu) { |
355 | cpufreq_stat_cpu_callback(&cpufreq_stat_cpu_notifier, CPU_ONLINE, | 354 | cpufreq_stat_cpu_callback(&cpufreq_stat_cpu_notifier, CPU_ONLINE, |
356 | (void *)(long)cpu); | 355 | (void *)(long)cpu); |
357 | } | 356 | } |
358 | unlock_cpu_hotplug(); | ||
359 | return 0; | 357 | return 0; |
360 | } | 358 | } |
361 | static void | 359 | static void |