mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-11-07 04:09:21 +00:00
slab: fix cache_cache bootstrap in kmem_cache_init()
Commit 556a169dab
("slab: fix bootstrap on
memoryless node") introduced bootstrap-time cache_cache list3s for all nodes
but forgot that initkmem_list3 needs to be accessed by [somevalue + node]. This
patch fixes list_add() corruption in mm/slab.c seen on the ES7000.
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Olaf Hering <olaf@aepfle.de>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Dan Yeisley <dan.yeisley@unisys.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
This commit is contained in:
parent
53625b4204
commit
ec1f5eeeb5
1 changed files with 2 additions and 2 deletions
|
@ -1481,7 +1481,7 @@ void __init kmem_cache_init(void)
|
|||
list_add(&cache_cache.next, &cache_chain);
|
||||
cache_cache.colour_off = cache_line_size();
|
||||
cache_cache.array[smp_processor_id()] = &initarray_cache.cache;
|
||||
cache_cache.nodelists[node] = &initkmem_list3[CACHE_CACHE];
|
||||
cache_cache.nodelists[node] = &initkmem_list3[CACHE_CACHE + node];
|
||||
|
||||
/*
|
||||
* struct kmem_cache size depends on nr_node_ids, which
|
||||
|
@ -1602,7 +1602,7 @@ void __init kmem_cache_init(void)
|
|||
int nid;
|
||||
|
||||
for_each_online_node(nid) {
|
||||
init_list(&cache_cache, &initkmem_list3[CACHE_CACHE], nid);
|
||||
init_list(&cache_cache, &initkmem_list3[CACHE_CACHE + nid], nid);
|
||||
|
||||
init_list(malloc_sizes[INDEX_AC].cs_cachep,
|
||||
&initkmem_list3[SIZE_AC + nid], nid);
|
||||
|
|
Loading…
Reference in a new issue