|
@@ -1668,9 +1668,6 @@ void __init kmem_cache_init_late(void)
|
|
BUG();
|
|
BUG();
|
|
mutex_unlock(&cache_chain_mutex);
|
|
mutex_unlock(&cache_chain_mutex);
|
|
|
|
|
|
- /* Done! */
|
|
|
|
- g_cpucache_up = FULL;
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Register a cpu startup notifier callback that initializes
|
|
* Register a cpu startup notifier callback that initializes
|
|
* cpu_cache_get for all new cpus
|
|
* cpu_cache_get for all new cpus
|
|
@@ -1700,6 +1697,9 @@ static int __init cpucache_init(void)
|
|
*/
|
|
*/
|
|
for_each_online_cpu(cpu)
|
|
for_each_online_cpu(cpu)
|
|
start_cpu_timer(cpu);
|
|
start_cpu_timer(cpu);
|
|
|
|
+
|
|
|
|
+ /* Done! */
|
|
|
|
+ g_cpucache_up = FULL;
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
__initcall(cpucache_init);
|
|
__initcall(cpucache_init);
|
|
@@ -2167,7 +2167,7 @@ static size_t calculate_slab_order(struct kmem_cache *cachep,
|
|
|
|
|
|
static int __init_refok setup_cpu_cache(struct kmem_cache *cachep, gfp_t gfp)
|
|
static int __init_refok setup_cpu_cache(struct kmem_cache *cachep, gfp_t gfp)
|
|
{
|
|
{
|
|
- if (g_cpucache_up == FULL)
|
|
|
|
|
|
+ if (g_cpucache_up >= LATE)
|
|
return enable_cpucache(cachep, gfp);
|
|
return enable_cpucache(cachep, gfp);
|
|
|
|
|
|
if (g_cpucache_up == NONE) {
|
|
if (g_cpucache_up == NONE) {
|