bootup: move 'usermodehelper_enable()' a little earlier
authorwangyanqing <udknight@gmail.com>
Thu, 29 Sep 2011 07:09:40 +0000 (15:09 +0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 30 Sep 2011 02:21:01 +0000 (19:21 -0700)
Commit d5767c53535a ("bootup: move 'usermodehelper_enable()' to the end
of do_basic_setup()") moved 'usermodehelper_enable()' to end of
do_basic_setup() to after the initcalls.  But then I get failed to let
uvesafb work on my computer, and lose the splash boot.

So maybe we could start usermodehelper_enable a little early to make
some task work that need eary init with the help of user mode.

[ I would *really* prefer that initcalls not call into user space - even
  the real 'init' hasn't been execve'd yet, after all! But for uvesafb
  it really does look like we don't have much choice.

  I considered doing this when we mount the root filesystem, but
  depending on config options that is in multiple places.  We could do
  the usermode helper enable as a rootfs_initcall()..

  So I'm just using wang yanqing's trivial patch.  It's not wonderful,
  but it's simple and should work.  We should revisit this some day,
  though.      - Linus ]

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
init/main.c

index 23702bbdbc1d84ae42624944f2bfc799c46952a4..03b408dff825aed650ac3ec7a3fea2b7845ff9fd 100644 (file)
@@ -730,8 +730,8 @@ static void __init do_basic_setup(void)
        driver_init();
        init_irq_proc();
        do_ctors();
-       do_initcalls();
        usermodehelper_enable();
+       do_initcalls();
 }
 
 static void __init do_pre_smp_initcalls(void)