diff options
author | Tejun Heo <tj@kernel.org> | 2010-08-09 11:50:34 +0200 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-08-09 11:50:34 +0200 |
commit | f6500947a9cbb81cfa07ff344f16955d9c6ebe61 (patch) | |
tree | 6544ae45f39370fd35cb44076dc4628bd852bc19 /kernel/workqueue.c | |
parent | 38f51568005873a241a8ae6bf28c9ddd3f6a11ed (diff) | |
download | op-kernel-dev-f6500947a9cbb81cfa07ff344f16955d9c6ebe61.zip op-kernel-dev-f6500947a9cbb81cfa07ff344f16955d9c6ebe61.tar.gz |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index da6c482..2994a0e 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -3527,7 +3527,7 @@ static int __init init_workqueues(void) unsigned int cpu; int i; - hotcpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE); + cpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE); /* initialize gcwqs */ for_each_gcwq_cpu(cpu) { |