import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / init / do_mounts_initrd.c
index a32ec1ce882b22dc96ed714a3f68e5838ed98af3..a49c59680576c6808770dcf580cd6db4382fa2e4 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/romfs_fs.h>
 #include <linux/initrd.h>
 #include <linux/sched.h>
+#include <linux/suspend.h>
 #include <linux/freezer.h>
 #include <linux/kmod.h>
 
@@ -50,6 +51,7 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new)
 
 static void __init handle_initrd(void)
 {
+       struct subprocess_info *info;
        static char *argv[] = { "linuxrc", NULL, };
        extern char *envp_init[];
        int error;
@@ -70,11 +72,19 @@ static void __init handle_initrd(void)
         */
        current->flags |= PF_FREEZER_SKIP;
 
-       call_usermodehelper_fns("/linuxrc", argv, envp_init, UMH_WAIT_PROC,
-                       init_linuxrc, NULL, NULL);
+       info = call_usermodehelper_setup("/linuxrc", argv, envp_init,
+                                        GFP_KERNEL, init_linuxrc, NULL, NULL);
+       if (!info)
+               return;
+       call_usermodehelper_exec(info, UMH_WAIT_PROC);
 
        current->flags &= ~PF_FREEZER_SKIP;
 
+       if (!resume_attempted)
+               printk(KERN_ERR "TuxOnIce: No attempt was made to resume from "
+                               "any image that might exist.\n");
+       clear_toi_state(TOI_BOOT_TIME);
+
        /* move initrd to rootfs' /old */
        sys_mount("..", ".", NULL, MS_MOVE, NULL);
        /* switch root and cwd back to / of rootfs */