diff options
| -rw-r--r-- | mm/slub.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/mm/slub.c b/mm/slub.c index 8fbb2fd70b6..bd4a9e942ac 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2062,7 +2062,7 @@ init_kmem_cache_node(struct kmem_cache_node *n, struct kmem_cache *s)  #endif  } -static DEFINE_PER_CPU(struct kmem_cache_cpu, kmalloc_percpu[SLUB_PAGE_SHIFT]); +static DEFINE_PER_CPU(struct kmem_cache_cpu, kmalloc_percpu[KMALLOC_CACHES]);  static inline int alloc_kmem_cache_cpus(struct kmem_cache *s, gfp_t flags)  { @@ -2148,7 +2148,8 @@ static int init_kmem_cache_nodes(struct kmem_cache *s, gfp_t gfpflags)  	int node;  	int local_node; -	if (slab_state >= UP) +	if (slab_state >= UP && (s < kmalloc_caches || +			s > kmalloc_caches + KMALLOC_CACHES))  		local_node = page_to_nid(virt_to_page(s));  	else  		local_node = 0; | 
