diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-09 22:26:14 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-10-09 22:26:14 -0400 |
commit | 0cf744bc7ae8e0072159a901f6e1a159bbc30ffa (patch) | |
tree | fc8222a3a5af4f42226070c3f76462cfcf0b4e50 /include/linux/slab.h | |
parent | b528392669415dc1e53a047215e5ad6c2de879fc (diff) | |
parent | 7f8998c7aef3ac9c5f3f2943e083dfa6302e90d0 (diff) |
Merge branch 'akpm' (fixes from Andrew Morton)
Merge patch-bomb from Andrew Morton:
- part of OCFS2 (review is laggy again)
- procfs
- slab
- all of MM
- zram, zbud
- various other random things: arch, filesystems.
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (164 commits)
nosave: consolidate __nosave_{begin,end} in <asm/sections.h>
include/linux/screen_info.h: remove unused ORIG_* macros
kernel/sys.c: compat sysinfo syscall: fix undefined behavior
kernel/sys.c: whitespace fixes
acct: eliminate compile warning
kernel/async.c: switch to pr_foo()
include/linux/blkdev.h: use NULL instead of zero
include/linux/kernel.h: deduplicate code implementing clamp* macros
include/linux/kernel.h: rewrite min3, max3 and clamp using min and max
alpha: use Kbuild logic to include <asm-generic/sections.h>
frv: remove deprecated IRQF_DISABLED
frv: remove unused cpuinfo_frv and friends to fix future build error
zbud: avoid accessing last unused freelist
zsmalloc: simplify init_zspage free obj linking
mm/zsmalloc.c: correct comment for fullness group computation
zram: use notify_free to account all free notifications
zram: report maximum used memory
zram: zram memory size limitation
zsmalloc: change return value unit of zs_get_total_size_bytes
zsmalloc: move pages_allocated to zs_pool
...
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 */ |