[PATCH] slab: fix kzalloc and kstrdup caller report for CONFIG_DEBUG_SLAB
Fix kzalloc() and kstrdup() caller report for CONFIG_DEBUG_SLAB. We must pass the caller to __cache_alloc() instead of directly doing __builtin_return_address(0) there; otherwise kzalloc() and kstrdup() are reported as the allocation site instead of the real one. Thanks to Valdis Kletnieks for reporting the problem and Steven Rostedt for the original idea. Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
b958f7d9f3
commit
7fd6b14130
@ -76,7 +76,14 @@ struct cache_sizes {
|
||||
kmem_cache_t *cs_dmacachep;
|
||||
};
|
||||
extern struct cache_sizes malloc_sizes[];
|
||||
|
||||
#ifndef CONFIG_DEBUG_SLAB
|
||||
extern void *__kmalloc(size_t, gfp_t);
|
||||
#else
|
||||
extern void *__kmalloc_track_caller(size_t, gfp_t, void*);
|
||||
#define __kmalloc(size, flags) \
|
||||
__kmalloc_track_caller(size, flags, __builtin_return_address(0))
|
||||
#endif
|
||||
|
||||
static inline void *kmalloc(size_t size, gfp_t flags)
|
||||
{
|
||||
|
Reference in New Issue
Block a user