[PATCH] slab: fix crash on __drain_alien_cahce() during CPU Hotplug
authorshin, jacob <jacob.shin@amd.com>
Fri, 28 Apr 2006 15:54:37 +0000 (10:54 -0500)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 28 Apr 2006 16:00:35 +0000 (09:00 -0700)
transfer_objects should only be called when all of the cpus in the
node are online.  CPU_DEAD notifier callback marks l3->shared to NULL.

Signed-off-by: Jacob Shin <jacob.shin@amd.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
mm/slab.c

index af5c5237e11a0df9d2f384383a2e8cd3b846a792..c32af7e7581ef0ff11ef112f94b6a84da50cafc4 100644 (file)
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -979,7 +979,8 @@ static void __drain_alien_cache(struct kmem_cache *cachep,
                 * That way we could avoid the overhead of putting the objects
                 * into the free lists and getting them back later.
                 */
-               transfer_objects(rl3->shared, ac, ac->limit);
+               if (rl3->shared)
+                       transfer_objects(rl3->shared, ac, ac->limit);
 
                free_block(cachep, ac->entry, ac->avail, node);
                ac->avail = 0;