Browse Source

[PATCH] slab: use on_each_cpu()

Slab duplicates on_each_cpu().

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton 19 years ago
parent
commit
a07fa3944b
1 changed files with 2 additions and 19 deletions
  1. 2 19
      mm/slab.c

+ 2 - 19
mm/slab.c

@@ -2119,23 +2119,6 @@ static void check_spinlock_acquired_node(struct kmem_cache *cachep, int node)
 #define check_spinlock_acquired_node(x, y) do { } while(0)
 #define check_spinlock_acquired_node(x, y) do { } while(0)
 #endif
 #endif
 
 
-/*
- * Waits for all CPUs to execute func().
- */
-static void smp_call_function_all_cpus(void (*func)(void *arg), void *arg)
-{
-	check_irq_on();
-	preempt_disable();
-	local_irq_disable();
-	func(arg);
-	local_irq_enable();
-
-	if (smp_call_function(func, arg, 1, 1))
-		BUG();
-
-	preempt_enable();
-}
-
 static void drain_array_locked(struct kmem_cache *cachep,
 static void drain_array_locked(struct kmem_cache *cachep,
 			struct array_cache *ac, int force, int node);
 			struct array_cache *ac, int force, int node);
 
 
@@ -2158,7 +2141,7 @@ static void drain_cpu_caches(struct kmem_cache *cachep)
 	struct kmem_list3 *l3;
 	struct kmem_list3 *l3;
 	int node;
 	int node;
 
 
-	smp_call_function_all_cpus(do_drain, cachep);
+	on_each_cpu(do_drain, cachep, 1, 1);
 	check_irq_on();
 	check_irq_on();
 	for_each_online_node(node) {
 	for_each_online_node(node) {
 		l3 = cachep->nodelists[node];
 		l3 = cachep->nodelists[node];
@@ -3449,7 +3432,7 @@ static int do_tune_cpucache(struct kmem_cache *cachep, int limit,
 	}
 	}
 	new.cachep = cachep;
 	new.cachep = cachep;
 
 
-	smp_call_function_all_cpus(do_ccupdate_local, (void *)&new);
+	on_each_cpu(do_ccupdate_local, (void *)&new, 1, 1);
 
 
 	check_irq_on();
 	check_irq_on();
 	cachep->batchcount = batchcount;
 	cachep->batchcount = batchcount;