kmemcheck: add the kmemcheck core
[cascardo/linux.git] / init / main.c
index 6d38f96..e3c335e 100644 (file)
@@ -56,6 +56,7 @@
 #include <linux/debug_locks.h>
 #include <linux/debugobjects.h>
 #include <linux/lockdep.h>
+#include <linux/kmemleak.h>
 #include <linux/pid_namespace.h>
 #include <linux/device.h>
 #include <linux/kthread.h>
@@ -64,6 +65,7 @@
 #include <linux/idr.h>
 #include <linux/ftrace.h>
 #include <linux/async.h>
+#include <linux/kmemcheck.h>
 #include <linux/kmemtrace.h>
 #include <trace/boot.h>
 
@@ -533,6 +535,16 @@ void __init __weak thread_info_cache_init(void)
 {
 }
 
+/*
+ * Set up kernel memory allocators
+ */
+static void __init mm_init(void)
+{
+       mem_init();
+       kmem_cache_init();
+       vmalloc_init();
+}
+
 asmlinkage void __init start_kernel(void)
 {
        char * command_line;
@@ -590,12 +602,7 @@ asmlinkage void __init start_kernel(void)
        vfs_caches_init_early();
        sort_main_extable();
        trap_init();
-       /*
-        * Set up kernel memory allocators
-        */
-       mem_init();
-       kmem_cache_init();
-       vmalloc_init();
+       mm_init();
        /*
         * Set up the scheduler prior starting any interrupts (such as the
         * timer interrupt). Full topology setup happens at smp_init()
@@ -616,6 +623,7 @@ asmlinkage void __init start_kernel(void)
        /* init some links before init_ISA_irqs() */
        early_irq_init();
        init_IRQ();
+       prio_tree_init();
        init_timers();
        hrtimers_init();
        softirq_init();
@@ -662,6 +670,7 @@ asmlinkage void __init start_kernel(void)
        enable_debug_pagealloc();
        cpu_hotplug_init();
        kmemtrace_init();
+       kmemleak_init();
        debug_objects_mem_init();
        idr_init_cache();
        setup_per_cpu_pageset();
@@ -671,7 +680,6 @@ asmlinkage void __init start_kernel(void)
        calibrate_delay();
        pidmap_init();
        pgtable_cache_init();
-       prio_tree_init();
        anon_vma_init();
 #ifdef CONFIG_X86
        if (efi_enabled)