Commit 7adde04a2f5a798f04a556dfb3b69bff388e5dc4

Authored by Xiaotian Feng
Committed by Pekka Enberg
1 parent 7e27d6e778

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, \