diff options
Diffstat (limited to 'include/linux/slab.h')
-rw-r--r-- | include/linux/slab.h | 64 |
1 files changed, 1 insertions, 63 deletions
diff --git a/include/linux/slab.h b/include/linux/slab.h index 1d9abb7d22a0..c265bec6a57d 100644 --- a/include/linux/slab.h +++ b/include/linux/slab.h | |||
@@ -158,31 +158,6 @@ size_t ksize(const void *); | |||
158 | #define ARCH_KMALLOC_MINALIGN __alignof__(unsigned long long) | 158 | #define ARCH_KMALLOC_MINALIGN __alignof__(unsigned long long) |
159 | #endif | 159 | #endif |
160 | 160 | ||
161 | #ifdef CONFIG_SLOB | ||
162 | /* | ||
163 | * Common fields provided in kmem_cache by all slab allocators | ||
164 | * This struct is either used directly by the allocator (SLOB) | ||
165 | * or the allocator must include definitions for all fields | ||
166 | * provided in kmem_cache_common in their definition of kmem_cache. | ||
167 | * | ||
168 | * Once we can do anonymous structs (C11 standard) we could put a | ||
169 | * anonymous struct definition in these allocators so that the | ||
170 | * separate allocations in the kmem_cache structure of SLAB and | ||
171 | * SLUB is no longer needed. | ||
172 | */ | ||
173 | struct kmem_cache { | ||
174 | unsigned int object_size;/* The original size of the object */ | ||
175 | unsigned int size; /* The aligned/padded/added on size */ | ||
176 | unsigned int align; /* Alignment as calculated */ | ||
177 | unsigned long flags; /* Active flags on the slab */ | ||
178 | const char *name; /* Slab name for sysfs */ | ||
179 | int refcount; /* Use counter */ | ||
180 | void (*ctor)(void *); /* Called on object slot creation */ | ||
181 | struct list_head list; /* List of all slab caches on the system */ | ||
182 | }; | ||
183 | |||
184 | #endif /* CONFIG_SLOB */ | ||
185 | |||
186 | /* | 161 | /* |
187 | * Kmalloc array related definitions | 162 | * Kmalloc array related definitions |
188 | */ | 163 | */ |
@@ -363,14 +338,6 @@ kmem_cache_alloc_node_trace(struct kmem_cache *s, | |||
363 | } | 338 | } |
364 | #endif /* CONFIG_TRACING */ | 339 | #endif /* CONFIG_TRACING */ |
365 | 340 | ||
366 | #ifdef CONFIG_SLAB | ||
367 | #include <linux/slab_def.h> | ||
368 | #endif | ||
369 | |||
370 | #ifdef CONFIG_SLUB | ||
371 | #include <linux/slub_def.h> | ||
372 | #endif | ||
373 | |||
374 | extern void *kmalloc_order(size_t size, gfp_t flags, unsigned int order); | 341 | extern void *kmalloc_order(size_t size, gfp_t flags, unsigned int order); |
375 | 342 | ||
376 | #ifdef CONFIG_TRACING | 343 | #ifdef CONFIG_TRACING |
@@ -582,37 +549,15 @@ static inline void *kcalloc(size_t n, size_t size, gfp_t flags) | |||
582 | * allocator where we care about the real place the memory allocation | 549 | * allocator where we care about the real place the memory allocation |
583 | * request comes from. | 550 | * request comes from. |
584 | */ | 551 | */ |
585 | #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ | ||
586 | (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) || \ | ||
587 | (defined(CONFIG_SLOB) && defined(CONFIG_TRACING)) | ||
588 | extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); | 552 | extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); |
589 | #define kmalloc_track_caller(size, flags) \ | 553 | #define kmalloc_track_caller(size, flags) \ |
590 | __kmalloc_track_caller(size, flags, _RET_IP_) | 554 | __kmalloc_track_caller(size, flags, _RET_IP_) |
591 | #else | ||
592 | #define kmalloc_track_caller(size, flags) \ | ||
593 | __kmalloc(size, flags) | ||
594 | #endif /* DEBUG_SLAB */ | ||
595 | 555 | ||
596 | #ifdef CONFIG_NUMA | 556 | #ifdef CONFIG_NUMA |
597 | /* | ||
598 | * kmalloc_node_track_caller is a special version of kmalloc_node that | ||
599 | * records the calling function of the routine calling it for slab leak | ||
600 | * tracking instead of just the calling function (confusing, eh?). | ||
601 | * It's useful when the call to kmalloc_node comes from a widely-used | ||
602 | * standard allocator where we care about the real place the memory | ||
603 | * allocation request comes from. | ||
604 | */ | ||
605 | #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ | ||
606 | (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) || \ | ||
607 | (defined(CONFIG_SLOB) && defined(CONFIG_TRACING)) | ||
608 | extern void *__kmalloc_node_track_caller(size_t, gfp_t, int, unsigned long); | 557 | extern void *__kmalloc_node_track_caller(size_t, gfp_t, int, unsigned long); |
609 | #define kmalloc_node_track_caller(size, flags, node) \ | 558 | #define kmalloc_node_track_caller(size, flags, node) \ |
610 | __kmalloc_node_track_caller(size, flags, node, \ | 559 | __kmalloc_node_track_caller(size, flags, node, \ |
611 | _RET_IP_) | 560 | _RET_IP_) |
612 | #else | ||
613 | #define kmalloc_node_track_caller(size, flags, node) \ | ||
614 | __kmalloc_node(size, flags, node) | ||
615 | #endif | ||
616 | 561 | ||
617 | #else /* CONFIG_NUMA */ | 562 | #else /* CONFIG_NUMA */ |
618 | 563 | ||
@@ -650,14 +595,7 @@ static inline void *kzalloc_node(size_t size, gfp_t flags, int node) | |||
650 | return kmalloc_node(size, flags | __GFP_ZERO, node); | 595 | return kmalloc_node(size, flags | __GFP_ZERO, node); |
651 | } | 596 | } |
652 | 597 | ||
653 | /* | 598 | unsigned int kmem_cache_size(struct kmem_cache *s); |
654 | * Determine the size of a slab object | ||
655 | */ | ||
656 | static inline unsigned int kmem_cache_size(struct kmem_cache *s) | ||
657 | { | ||
658 | return s->object_size; | ||
659 | } | ||
660 | |||
661 | void __init kmem_cache_init_late(void); | 599 | void __init kmem_cache_init_late(void); |
662 | 600 | ||
663 | #endif /* _LINUX_SLAB_H */ | 601 | #endif /* _LINUX_SLAB_H */ |