Merge commit '8700c95adb03' into timers/nohz
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / init / main.c
index 2acb5bbde99b55c77818c2053e6b36eca7d61712..1952bf2f6875b1d87dc2bacb73aad6f2d8db3e70 100644 (file)
@@ -9,6 +9,8 @@
  *  Simplified starting of init:  Michael A. Griffith <grif@acm.org> 
  */
 
+#define DEBUG          /* Enable initcall_debug */
+
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/proc_fs.h>
@@ -174,8 +176,8 @@ static int __init obsolete_checksetup(char *line)
                                if (line[n] == '\0' || line[n] == '=')
                                        had_early_param = 1;
                        } else if (!p->setup_func) {
-                               printk(KERN_WARNING "Parameter %s is obsolete,"
-                                      " ignored\n", p->str);
+                               pr_warn("Parameter %s is obsolete, ignored\n",
+                                       p->str);
                                return 1;
                        } else if (p->setup_func(line + n))
                                return 1;
@@ -384,7 +386,7 @@ static noinline void __init_refok rest_init(void)
        init_idle_bootup_task(current);
        schedule_preempt_disabled();
        /* Call into cpu_idle with preempt disabled */
-       cpu_idle();
+       cpu_startup_entry(CPUHP_ONLINE);
 }
 
 /* Check for early params. */
@@ -398,8 +400,7 @@ static int __init do_early_param(char *param, char *val, const char *unused)
                     strcmp(p->str, "earlycon") == 0)
                ) {
                        if (p->setup_func(val) != 0)
-                               printk(KERN_WARNING
-                                      "Malformed early option '%s'\n", param);
+                               pr_warn("Malformed early option '%s'\n", param);
                }
        }
        /* We accept everything at this stage. */
@@ -497,7 +498,7 @@ asmlinkage void __init start_kernel(void)
        tick_init();
        boot_cpu_init();
        page_address_init();
-       printk(KERN_NOTICE "%s", linux_banner);
+       pr_notice("%s", linux_banner);
        setup_arch(&command_line);
        mm_init_owner(&init_mm, &init_task);
        mm_init_cpumask(&init_mm);
@@ -509,7 +510,7 @@ asmlinkage void __init start_kernel(void)
        build_all_zonelists(NULL, NULL);
        page_alloc_init();
 
-       printk(KERN_NOTICE "Kernel command line: %s\n", boot_command_line);
+       pr_notice("Kernel command line: %s\n", boot_command_line);
        parse_early_param();
        parse_args("Booting kernel", static_command_line, __start___param,
                   __stop___param - __start___param,
@@ -539,11 +540,8 @@ asmlinkage void __init start_kernel(void)
         * fragile until we cpu_idle() for the first time.
         */
        preempt_disable();
-       if (!irqs_disabled()) {
-               printk(KERN_WARNING "start_kernel(): bug: interrupts were "
-                               "enabled *very* early, fixing it\n");
+       if (WARN(!irqs_disabled(), "Interrupts were enabled *very* early, fixing it\n"))
                local_irq_disable();
-       }
        idr_init_cache();
        perf_event_init();
        rcu_init();
@@ -559,9 +557,7 @@ asmlinkage void __init start_kernel(void)
        time_init();
        profile_init();
        call_function_init();
-       if (!irqs_disabled())
-               printk(KERN_CRIT "start_kernel(): bug: interrupts were "
-                                "enabled early\n");
+       WARN(!irqs_disabled(), "Interrupts were enabled early\n");
        early_boot_irqs_disabled = false;
        local_irq_enable();
 
@@ -588,8 +584,7 @@ asmlinkage void __init start_kernel(void)
 #ifdef CONFIG_BLK_DEV_INITRD
        if (initrd_start && !initrd_below_start_ok &&
            page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) {
-               printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - "
-                   "disabling it.\n",
+               pr_crit("initrd overwritten (0x%08lx < 0x%08lx) - disabling it.\n",
                    page_to_pfn(virt_to_page((void *)initrd_start)),
                    min_low_pfn);
                initrd_start = 0;
@@ -668,14 +663,14 @@ static int __init_or_module do_one_initcall_debug(initcall_t fn)
        unsigned long long duration;
        int ret;
 
-       printk(KERN_DEBUG "calling  %pF @ %i\n", fn, task_pid_nr(current));
+       pr_debug("calling  %pF @ %i\n", fn, task_pid_nr(current));
        calltime = ktime_get();
        ret = fn();
        rettime = ktime_get();
        delta = ktime_sub(rettime, calltime);
        duration = (unsigned long long) ktime_to_ns(delta) >> 10;
-       printk(KERN_DEBUG "initcall %pF returned %d after %lld usecs\n", fn,
-               ret, duration);
+       pr_debug("initcall %pF returned %d after %lld usecs\n",
+                fn, ret, duration);
 
        return ret;
 }
@@ -703,9 +698,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
                strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf));
                local_irq_enable();
        }
-       if (msgbuf[0]) {
-               printk("initcall %pF returned with %s\n", fn, msgbuf);
-       }
+       WARN(msgbuf[0], "initcall %pF returned with %s\n", fn, msgbuf);
 
        return ret;
 }
@@ -833,8 +826,7 @@ static int __ref kernel_init(void *unused)
        if (ramdisk_execute_command) {
                if (!run_init_process(ramdisk_execute_command))
                        return 0;
-               printk(KERN_WARNING "Failed to execute %s\n",
-                               ramdisk_execute_command);
+               pr_err("Failed to execute %s\n", ramdisk_execute_command);
        }
 
        /*
@@ -846,8 +838,8 @@ static int __ref kernel_init(void *unused)
        if (execute_command) {
                if (!run_init_process(execute_command))
                        return 0;
-               printk(KERN_WARNING "Failed to execute %s.  Attempting "
-                                       "defaults...\n", execute_command);
+               pr_err("Failed to execute %s.  Attempting defaults...\n",
+                       execute_command);
        }
        if (!run_init_process("/sbin/init") ||
            !run_init_process("/etc/init") ||
@@ -892,7 +884,7 @@ static noinline void __init kernel_init_freeable(void)
 
        /* Open the /dev/console on the rootfs, this should never fail */
        if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
-               printk(KERN_WARNING "Warning: unable to open an initial console.\n");
+               pr_err("Warning: unable to open an initial console.\n");
 
        (void) sys_dup(0);
        (void) sys_dup(0);