diff options
author | Andrew Morton <akpm@digeo.com> | 2003-05-07 08:15:13 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-05-07 08:15:13 -0700 |
commit | 862fb2829261c21f53e9bcd843c801d4781512a8 (patch) | |
tree | c6d63ef6983b859ee338efcbbeb52193e2f54d1d /init | |
parent | c06d6406794377f1335ed4694d762c1bacc57519 (diff) | |
download | history-862fb2829261c21f53e9bcd843c801d4781512a8.tar.gz |
[PATCH] slab: initialisation cleanup and oops fix
From: Manfred Spraul <manfred@colorfullife.com>
attached is the promised cleanup/bugfix patch for the slab bootstrap:
- kmem_cache_init & kmem_cache_sizes_init merged into one function,
called after mem_init(). It's impossible to bring slab to an operational
state without working gfp, thus the early partial initialization is not
necessary.
- g_cpucache_up set to FULL at the end of kmem_cache_init instead of the
module init call. This is a bugfix: slab was completely initialized,
just the update of the state was missing.
- some documentation for the bootstrap added.
The minimal fix for the bug is a two-liner: move g_cpucache_up=FULL from
cpucache_init to kmem_cache_sizes_init, but I want to get rid of
kmem_cache_sizes_init, too.
Diffstat (limited to 'init')
-rw-r--r-- | init/main.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/init/main.c b/init/main.c index edb701549dfffc..74e083a3fcf50f 100644 --- a/init/main.c +++ b/init/main.c @@ -417,7 +417,6 @@ asmlinkage void __init start_kernel(void) */ console_init(); profile_init(); - kmem_cache_init(); local_irq_enable(); calibrate_delay(); #ifdef CONFIG_BLK_DEV_INITRD @@ -430,7 +429,7 @@ asmlinkage void __init start_kernel(void) #endif page_address_init(); mem_init(); - kmem_cache_sizes_init(); + kmem_cache_init(); pidmap_init(); pgtable_cache_init(); pte_chain_init(); |