Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Revert "Call init_workqueues before pre smp initcalls."

This reverts commit a802dd0eb5fc97a50cf1abb1f788a8f6cc5db635 by moving
the call to init_workqueues() back where it belongs - after SMP has been
initialized.

It also moves stop_machine_init() - which needs workqueues - to a later
phase using a core_initcall() instead of early_initcall(). That should
satisfy all ordering requirements, and was apparently the reason why
init_workqueues() was moved to be too early.

Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

+2 -3
+1 -2
init/main.c
··· 768 768 static void __init do_basic_setup(void) 769 769 { 770 770 rcu_init_sched(); /* needed by module_init stage. */ 771 + init_workqueues(); 771 772 usermodehelper_init(); 772 773 driver_init(); 773 774 init_irq_proc(); ··· 851 850 init_pid_ns.child_reaper = current; 852 851 853 852 cad_pid = task_pid(current); 854 - 855 - init_workqueues(); 856 853 857 854 smp_prepare_cpus(setup_max_cpus); 858 855
+1 -1
kernel/stop_machine.c
··· 160 160 stop_machine_work = alloc_percpu(struct work_struct); 161 161 return 0; 162 162 } 163 - early_initcall(stop_machine_init); 163 + core_initcall(stop_machine_init);