init:enable usermodehelper as soon as we have a root filesystem
PATCH 1/1 init:enable usermodehelper as soon as we have a root filesystem
before we have a filesystem , it is useless to enable usermodehelper, and it may cause bug if we enable usermodehelper too early (see commit d5767c53535ac79758084773418e0ad186aba4a2 for the reason why linus mv 'usermodehelper_enable()' to the end of do_basic_setup, and commit b0f84374b6ab0dc9c47975df0b02d46165d558d4).This patch
enable usermodehelper as soon as we have a filesystem.
--- init/do_mounts.c | 3 +++ init/initramfs.c | 2 ++ init/main.c | 1 - 3 files changed, 5 insertions(+), 1 deletions(-)
init/do_mounts.c +3 -0
@@ -490,4 +490,7 @@ out:devtmpfs_mount ("dev" );sys_mount ("." ,"/" ,NULL ,MS_MOVE ,NULL );sys_chroot ((const char __user __force *)"." ); +#ifndef CONFIG_BLK_DEV_INITRD +usermodehelper_enable (); +#endif }
init/initramfs.c +2 -0
@@ -581,6 +581,7 @@ static int __init populate_rootfs(void) err =unpack_to_rootfs ((char *)initrd_start, initrd_end - initrd_start);if (!err) { +usermodehelper_enable ();free_initrd ();return 0 ; }else {
@@ -603,6 +604,7 @@ static int __init populate_rootfs(void) initrd_end - initrd_start);if (err)printk (KERN_EMERG "Initramfs unpacking failed: %s\n" , err); +usermodehelper_enable ();free_initrd ();#endif }
init/main.c +0 -1
@@ -730,7 +730,6 @@ static void __init do_basic_setup(void)driver_init ();init_irq_proc ();do_ctors (); -usermodehelper_enable ();do_initcalls (); }
Signature · 1 line
1.7.3.4
Quoted 61 lines · wangyanqing
before we have a filesystem , it is useless to enable usermodehelper, and it may cause bug if we enable usermodehelper too early (see commit
d5767c53535ac79758084773418e0ad186aba4a2for the reason why linus mv 'usermodehelper_enable()' to the end ofdo_basic_setup, and commit b0f84374b6ab0dc9c47975df0b02d46165d558d4).This patch
enable usermodehelper as soon as we have a filesystem.Signed-off-by wang yanqing <[email protected]>--- init/do_mounts.c | 3 +++ init/initramfs.c | 2 ++ init/main.c | 1 - 3 files changed, 5 insertions(+), 1 deletions(-)init/do_mounts.c +3
-0@@ -490,4 +490,7 @@ out:devtmpfs_mount ("dev" );sys_mount ("." ,"/" ,NULL ,MS_MOVE ,NULL );sys_chroot ((const char __user __force *)"." ); +#ifndef CONFIG_BLK_DEV_INITRD +usermodehelper_enable (); +#endif }init/initramfs.c +2
-0@@ -581,6 +581,7 @@ static int __init populate_rootfs(void) err =unpack_to_rootfs ((char *)initrd_start, initrd_end - initrd_start);if (!err) { +usermodehelper_enable ();free_initrd ();return 0 ; }else {@@ -603,6 +604,7 @@ static int __init populate_rootfs(void) initrd_end - initrd_start);if (err)printk (KERN_EMERG "Initramfs unpacking failed: %s\n" , err); +usermodehelper_enable ();free_initrd ();#endif }init/main.c +0
-1@@ -730,7 +730,6 @@ static void __init do_basic_setup(void)driver_init ();init_irq_proc ();do_ctors (); -usermodehelper_enable ();do_initcalls (); }Signature · 1 line
1.7.3.4
Hi,Linus.Sorry, but I just want to know whether this patch is wrong? And any suggestion is welcome, thanks!