aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2010-08-09 05:50:34 -0400
committerTejun Heo <tj@kernel.org>2010-08-09 05:50:34 -0400
commitf6500947a9cbb81cfa07ff344f16955d9c6ebe61 (patch)
tree6544ae45f39370fd35cb44076dc4628bd852bc19 /kernel/workqueue.c
parent38f51568005873a241a8ae6bf28c9ddd3f6a11ed (diff)
workqueue: workqueue_cpu_callback() should be cpu_notifier instead of hotcpu_notifier
Commit 6ee0578b (workqueue: mark init_workqueues as early_initcall) made workqueue SMP initialization depend on workqueue_cpu_callback(), which however was registered as hotcpu_notifier() and didn't get called if CONFIG_HOTPLUG_CPU is not set. This made gcwqs on non-boot CPUs not create their initial workers leading to boot failures. Fix it by making it a cpu_notifier. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-and-bisected-by: walt <w41ter@gmail.com> Tested-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r--kernel/workqueue.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index da6c482944d7..2994a0e3a61c 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -3527,7 +3527,7 @@ static int __init init_workqueues(void)
3527 unsigned int cpu; 3527 unsigned int cpu;
3528 int i; 3528 int i;
3529 3529
3530 hotcpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE); 3530 cpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE);
3531 3531
3532 /* initialize gcwqs */ 3532 /* initialize gcwqs */
3533 for_each_gcwq_cpu(cpu) { 3533 for_each_gcwq_cpu(cpu) {