Call init_workqueues before pre smp initcalls.
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 13 Oct 2008 21:50:08 +0000 (23:50 +0200)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 21 Oct 2008 23:00:25 +0000 (10:00 +1100)
This allows to create workqueues from within the context of
a pre smp initcall (aka early_initcall).

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
init/main.c

index 3d68aaaf6160614645cb2c346275aa752dc66d4e..6c7fd137c8cdc8454ea8b3ab8356e89dac183427 100644 (file)
@@ -767,8 +767,6 @@ static void __init do_initcalls(void)
 static void __init do_basic_setup(void)
 {
        rcu_init_sched(); /* needed by module_init stage. */
-       /* drivers will send hotplug events */
-       init_workqueues();
        usermodehelper_init();
        driver_init();
        init_irq_proc();
@@ -852,6 +850,8 @@ static int __init kernel_init(void * unused)
 
        cad_pid = task_pid(current);
 
+       init_workqueues();
+
        smp_prepare_cpus(setup_max_cpus);
 
        do_pre_smp_initcalls();