]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - init/main.c
ARM: dts: exynos: add needs-hpd to &hdmicec for Odroid-U3
[mirror_ubuntu-artful-kernel.git] / init / main.c
index b0c11cbf5ddf8a55a3c832e4acbd72653d9c38f1..f866510472d7a263f03bc21b7a158e5b288185f9 100644 (file)
@@ -27,7 +27,7 @@
 #include <linux/initrd.h>
 #include <linux/bootmem.h>
 #include <linux/acpi.h>
-#include <linux/tty.h>
+#include <linux/console.h>
 #include <linux/nmi.h>
 #include <linux/percpu.h>
 #include <linux/kmod.h>
@@ -495,7 +495,7 @@ asmlinkage __visible void __init start_kernel(void)
        debug_objects_early_init();
 
        /*
-        * Set up the the initial canary ASAP:
+        * Set up the initial canary ASAP:
         */
        boot_init_stack_canary();
 
@@ -504,10 +504,10 @@ asmlinkage __visible void __init start_kernel(void)
        local_irq_disable();
        early_boot_irqs_disabled = true;
 
-/*
- * Interrupts are still disabled. Do necessary setups, then
- * enable them
- */
+       /*
       * Interrupts are still disabled. Do necessary setups, then
+        * enable them.
       */
        boot_cpu_init();
        page_address_init();
        pr_notice("%s", linux_banner);
@@ -545,6 +545,11 @@ asmlinkage __visible void __init start_kernel(void)
        trap_init();
        mm_init();
 
+       ftrace_init();
+
+       /* trace_printk can be enabled here */
+       early_trace_init();
+
        /*
         * Set up the scheduler prior starting any interrupts (such as the
         * timer interrupt). Full topology setup happens at smp_init()
@@ -570,7 +575,7 @@ asmlinkage __visible void __init start_kernel(void)
 
        rcu_init();
 
-       /* trace_printk() and trace points may be used after this */
+       /* Trace events are available after this */
        trace_init();
 
        context_tracking_init();
@@ -670,8 +675,6 @@ asmlinkage __visible void __init start_kernel(void)
                efi_free_boot_services();
        }
 
-       ftrace_init();
-
        /* Do the rest non-__init'ed, we're now alive */
        rest_init();
 }
@@ -959,6 +962,7 @@ static int __ref kernel_init(void *unused)
        kernel_init_freeable();
        /* need to finish all async __init code before freeing the memory */
        async_synchronize_full();
+       ftrace_free_init_mem();
        free_initmem();
        mark_readonly();
        system_state = SYSTEM_RUNNING;