X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=init%2Fmain.c;h=f866510472d7a263f03bc21b7a158e5b288185f9;hb=82d1afbce1e021819b913d9f6a314c3b12b56ed8;hp=b0c11cbf5ddf8a55a3c832e4acbd72653d9c38f1;hpb=2575be8ad32f9910d7e7c118e73f529b8d5b8b7b;p=mirror_ubuntu-artful-kernel.git diff --git a/init/main.c b/init/main.c index b0c11cbf5ddf..f866510472d7 100644 --- a/init/main.c +++ b/init/main.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include #include #include @@ -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;