public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] slab: fix cache_cache bootstrap in kmem_cache_init()
@ 2008-03-25 21:59 Pekka J Enberg
  2008-03-26  3:27 ` Christoph Lameter
  0 siblings, 1 reply; 6+ messages in thread
From: Pekka J Enberg @ 2008-03-25 21:59 UTC (permalink / raw)
  To: akpm; +Cc: mel, olaf, clameter, dan.yeisley, linux-kernel

From: Daniel Yeisley <dan.yeisley@unisys.com>

Commit 556a169dab38b5100df6f4a45b655dddd3db94c1 ("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>
---
Andrew/Christoph, this needs to go into 2.6.25 and probably 2.6.24.x as 
well. Hopefully either Mel or Olaf can test this on their machines to 
confirm the fix doesn't break their setup.

 mm/slab.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6/mm/slab.c
===================================================================
--- linux-2.6.orig/mm/slab.c
+++ linux-2.6/mm/slab.c
@@ -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);

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-03-26 17:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-25 21:59 [PATCH] slab: fix cache_cache bootstrap in kmem_cache_init() Pekka J Enberg
2008-03-26  3:27 ` Christoph Lameter
2008-03-26  6:21   ` Pekka Enberg
2008-03-26 12:37     ` Daniel Yeisley
2008-03-26 16:28       ` Christoph Lameter
2008-03-26 17:16         ` Yeisley, Dan P.

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox