Some architectures need to initialize SLAB caches to be able
to allocate page tables. They do that from pgtable_cache_init()
so the later should be called earlier now, best is before
vmalloc_init().
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
Note: Only powerpc, sparc and xtensa use this and only to
call kmem_cache_create() so with a bit of luck it should
just work...
Index: linux-work/init/main.c
===================================================================
--- linux-work.orig/init/main.c 2009-06-17 13:41:33.000000000 +1000
+++ linux-work/init/main.c 2009-06-17 13:41:45.000000000 +1000
@@ -546,6 +546,7 @@ static void __init mm_init(void)
page_cgroup_init_flatmem();
mem_init();
kmem_cache_init();
+ pgtable_cache_init();
vmalloc_init();
}
@@ -684,7 +685,6 @@ asmlinkage void __init start_kernel(void
late_time_init();
calibrate_delay();
pidmap_init();
- pgtable_cache_init();
anon_vma_init();
#ifdef CONFIG_X86
if (efi_enabled)