X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=init%2Fmain.c;h=0e7aedeaa05f4f56a6737c078331f675201505a1;hb=fb0f8fbf97e8a25074c81c629500d94cafa9e366;hp=7917695bf71eeec3ba1fba336fd7631d8c02a233;hpb=8a1ca8cedd108c8e76a6ab34079d0bbb4f244799;p=pandora-kernel.git diff --git a/init/main.c b/init/main.c index 7917695bf71e..0e7aedeaa05f 100644 --- a/init/main.c +++ b/init/main.c @@ -56,6 +56,7 @@ #include #include #include +#include #include #include #include @@ -64,6 +65,7 @@ #include #include #include +#include #include #include @@ -538,8 +540,14 @@ void __init __weak thread_info_cache_init(void) */ static void __init mm_init(void) { + /* + * page_cgroup requires countinous pages as memmap + * and it's bigger than MAX_ORDER unless SPARSEMEM. + */ + page_cgroup_init_flatmem(); mem_init(); kmem_cache_init(); + pgtable_cache_init(); vmalloc_init(); } @@ -621,6 +629,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(); @@ -633,6 +642,7 @@ asmlinkage void __init start_kernel(void) "enabled early\n"); early_boot_irqs_on(); local_irq_enable(); + kmem_cache_init_late(); /* * HACK ALERT! This is early. We're enabling the console before @@ -662,11 +672,11 @@ asmlinkage void __init start_kernel(void) initrd_start = 0; } #endif - cpuset_init_early(); page_cgroup_init(); enable_debug_pagealloc(); cpu_hotplug_init(); kmemtrace_init(); + kmemleak_init(); debug_objects_mem_init(); idr_init_cache(); setup_per_cpu_pageset(); @@ -675,8 +685,6 @@ asmlinkage void __init start_kernel(void) late_time_init(); calibrate_delay(); pidmap_init(); - pgtable_cache_init(); - prio_tree_init(); anon_vma_init(); #ifdef CONFIG_X86 if (efi_enabled) @@ -859,6 +867,11 @@ static noinline int init_post(void) static int __init kernel_init(void * unused) { lock_kernel(); + + /* + * init can allocate pages on any node + */ + set_mems_allowed(node_possible_map); /* * init can run on any cpu. */