From: Tejun Heo Date: Mon, 9 Aug 2010 09:50:34 +0000 (+0200) Subject: workqueue: workqueue_cpu_callback() should be cpu_notifier instead of hotcpu_notifier X-Git-Tag: firefly_0821_release~9833^2~1217^2~1 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f6500947a9cbb81cfa07ff344f16955d9c6ebe61;p=firefly-linux-kernel-4.4.55.git 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 Reported-and-bisected-by: walt Tested-by: Markus Trippelsdorf --- 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) 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) {