linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / mm / slob.c
index 7b52b20..a1f42bd 100644 (file)
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -29,6 +29,7 @@
  * essentially no allocation space overhead.
  */
 
+#include <linux/config.h>
 #include <linux/slab.h>
 #include <linux/mm.h>
 #include <linux/cache.h>
@@ -293,16 +294,6 @@ void *kmem_cache_alloc(struct kmem_cache *c, gfp_t flags)
 }
 EXPORT_SYMBOL(kmem_cache_alloc);
 
-void *kmem_cache_zalloc(struct kmem_cache *c, gfp_t flags)
-{
-       void *ret = kmem_cache_alloc(c, flags);
-       if (ret)
-               memset(ret, 0, c->size);
-
-       return ret;
-}
-EXPORT_SYMBOL(kmem_cache_zalloc);
-
 void kmem_cache_free(struct kmem_cache *c, void *b)
 {
        if (c->dtor)
@@ -353,7 +344,9 @@ void *__alloc_percpu(size_t size)
        if (!pdata)
                return NULL;
 
-       for_each_possible_cpu(i) {
+       for (i = 0; i < NR_CPUS; i++) {
+               if (!cpu_possible(i))
+                       continue;
                pdata->ptrs[i] = kmalloc(size, GFP_KERNEL);
                if (!pdata->ptrs[i])
                        goto unwind_oom;
@@ -380,9 +373,11 @@ free_percpu(const void *objp)
        int i;
        struct percpu_data *p = (struct percpu_data *) (~(unsigned long) objp);
 
-       for_each_possible_cpu(i)
+       for (i = 0; i < NR_CPUS; i++) {
+               if (!cpu_possible(i))
+                       continue;
                kfree(p->ptrs[i]);
-
+       }
        kfree(p);
 }
 EXPORT_SYMBOL(free_percpu);