Commit 7adde04a2f5a798f04a556dfb3b69bff388e5dc4
Committed by
Pekka Enberg
1 parent
7e27d6e778
Exists in
master
and in
4 other branches
slab: fix caller tracking on !CONFIG_DEBUG_SLAB && CONFIG_TRACING
In slab, all __xxx_track_caller is defined on CONFIG_DEBUG_SLAB || CONFIG_TRACING, thus caller tracking function should be worked for CONFIG_TRACING. But if CONFIG_DEBUG_SLAB is not set, include/linux/slab.h will define xxx_track_caller to __xxx() without consideration of CONFIG_TRACING. This will break the caller tracking behaviour then. Cc: Christoph Lameter <cl@linux-foundation.org> Cc: Matt Mackall <mpm@selenic.com> Cc: Vegard Nossum <vegard.nossum@gmail.com> Cc: Dmitry Monakhov <dmonakhov@openvz.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Xiaotian Feng <dfeng@redhat.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Showing 1 changed file with 4 additions and 2 deletions Side-by-side Diff
include/linux/slab.h
... | ... | @@ -268,7 +268,8 @@ |
268 | 268 | * allocator where we care about the real place the memory allocation |
269 | 269 | * request comes from. |
270 | 270 | */ |
271 | -#if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) | |
271 | +#if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ | |
272 | + (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) | |
272 | 273 | extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); |
273 | 274 | #define kmalloc_track_caller(size, flags) \ |
274 | 275 | __kmalloc_track_caller(size, flags, _RET_IP_) |
... | ... | @@ -286,7 +287,8 @@ |
286 | 287 | * standard allocator where we care about the real place the memory |
287 | 288 | * allocation request comes from. |
288 | 289 | */ |
289 | -#if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) | |
290 | +#if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ | |
291 | + (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) | |
290 | 292 | extern void *__kmalloc_node_track_caller(size_t, gfp_t, int, unsigned long); |
291 | 293 | #define kmalloc_node_track_caller(size, flags, node) \ |
292 | 294 | __kmalloc_node_track_caller(size, flags, node, \ |