* essentially no allocation space overhead.
*/
+#include <linux/config.h>
#include <linux/slab.h>
#include <linux/mm.h>
#include <linux/cache.h>
}
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)
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;
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);