]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/slab_def.h
ide: introduce CONFIG_BLK_DEV_IDEDMA_SFF option
[linux-2.6-omap-h63xx.git] / include / linux / slab_def.h
index 5e4364644ed13eedadbb3e11256f44b63886b618..fcc48096ee6406be0200c19ea7d6b1a64609dda5 100644 (file)
@@ -25,10 +25,17 @@ struct cache_sizes {
 };
 extern struct cache_sizes malloc_sizes[];
 
+void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
+void *__kmalloc(size_t size, gfp_t flags);
+
 static inline void *kmalloc(size_t size, gfp_t flags)
 {
        if (__builtin_constant_p(size)) {
                int i = 0;
+
+               if (!size)
+                       return ZERO_SIZE_PTR;
+
 #define CACHE(x) \
                if (size <= x) \
                        goto found; \
@@ -51,39 +58,18 @@ found:
        return __kmalloc(size, flags);
 }
 
-static inline void *kzalloc(size_t size, gfp_t flags)
-{
-       if (__builtin_constant_p(size)) {
-               int i = 0;
-#define CACHE(x) \
-               if (size <= x) \
-                       goto found; \
-               else \
-                       i++;
-#include "kmalloc_sizes.h"
-#undef CACHE
-               {
-                       extern void __you_cannot_kzalloc_that_much(void);
-                       __you_cannot_kzalloc_that_much();
-               }
-found:
-#ifdef CONFIG_ZONE_DMA
-               if (flags & GFP_DMA)
-                       return kmem_cache_zalloc(malloc_sizes[i].cs_dmacachep,
-                                               flags);
-#endif
-               return kmem_cache_zalloc(malloc_sizes[i].cs_cachep, flags);
-       }
-       return __kzalloc(size, flags);
-}
-
 #ifdef CONFIG_NUMA
 extern void *__kmalloc_node(size_t size, gfp_t flags, int node);
+extern void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
 
 static inline void *kmalloc_node(size_t size, gfp_t flags, int node)
 {
        if (__builtin_constant_p(size)) {
                int i = 0;
+
+               if (!size)
+                       return ZERO_SIZE_PTR;
+
 #define CACHE(x) \
                if (size <= x) \
                        goto found; \