Merge branch 'kmemtrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'kmemtrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: kmemtrace: trace kfree() calls with NULL or zero-length objects kmemtrace: small cleanups kmemtrace: restore original tracing data binary format, improve ABI kmemtrace: kmemtrace_alloc() must fill type_id kmemtrace: use tracepoints kmemtrace, rcu: don't include unnecessary headers, allow kmemtrace w/ tracepoints kmemtrace, rcu: fix rcupreempt.c data structure dependencies kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies kmemtrace, mm: fix slab.h dependency problem in mm/failslab.c kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_unlzma.c kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_bunzip2.c kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_inflate.c kmemtrace, squashfs: fix slab.h dependency problem in squasfs kmemtrace, befs: fix slab.h dependency problem kmemtrace, security: fix linux/key.h header file dependencies kmemtrace, fs: fix linux/fdtable.h header file dependencies kmemtrace, fs: uninline simple_transaction_set() kmemtrace, fs, security: move alloc_secdata() and free_secdata() to linux/security.h
This commit is contained in:
26
mm/slab.c
26
mm/slab.c
@ -3565,8 +3565,8 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
|
||||
{
|
||||
void *ret = __cache_alloc(cachep, flags, __builtin_return_address(0));
|
||||
|
||||
kmemtrace_mark_alloc(KMEMTRACE_TYPE_CACHE, _RET_IP_, ret,
|
||||
obj_size(cachep), cachep->buffer_size, flags);
|
||||
trace_kmem_cache_alloc(_RET_IP_, ret,
|
||||
obj_size(cachep), cachep->buffer_size, flags);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -3627,9 +3627,9 @@ void *kmem_cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid)
|
||||
void *ret = __cache_alloc_node(cachep, flags, nodeid,
|
||||
__builtin_return_address(0));
|
||||
|
||||
kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_CACHE, _RET_IP_, ret,
|
||||
obj_size(cachep), cachep->buffer_size,
|
||||
flags, nodeid);
|
||||
trace_kmem_cache_alloc_node(_RET_IP_, ret,
|
||||
obj_size(cachep), cachep->buffer_size,
|
||||
flags, nodeid);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -3657,9 +3657,8 @@ __do_kmalloc_node(size_t size, gfp_t flags, int node, void *caller)
|
||||
return cachep;
|
||||
ret = kmem_cache_alloc_node_notrace(cachep, flags, node);
|
||||
|
||||
kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_KMALLOC,
|
||||
(unsigned long) caller, ret,
|
||||
size, cachep->buffer_size, flags, node);
|
||||
trace_kmalloc_node((unsigned long) caller, ret,
|
||||
size, cachep->buffer_size, flags, node);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -3709,9 +3708,8 @@ static __always_inline void *__do_kmalloc(size_t size, gfp_t flags,
|
||||
return cachep;
|
||||
ret = __cache_alloc(cachep, flags, caller);
|
||||
|
||||
kmemtrace_mark_alloc(KMEMTRACE_TYPE_KMALLOC,
|
||||
(unsigned long) caller, ret,
|
||||
size, cachep->buffer_size, flags);
|
||||
trace_kmalloc((unsigned long) caller, ret,
|
||||
size, cachep->buffer_size, flags);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -3757,7 +3755,7 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
|
||||
__cache_free(cachep, objp);
|
||||
local_irq_restore(flags);
|
||||
|
||||
kmemtrace_mark_free(KMEMTRACE_TYPE_CACHE, _RET_IP_, objp);
|
||||
trace_kmem_cache_free(_RET_IP_, objp);
|
||||
}
|
||||
EXPORT_SYMBOL(kmem_cache_free);
|
||||
|
||||
@ -3775,6 +3773,8 @@ void kfree(const void *objp)
|
||||
struct kmem_cache *c;
|
||||
unsigned long flags;
|
||||
|
||||
trace_kfree(_RET_IP_, objp);
|
||||
|
||||
if (unlikely(ZERO_OR_NULL_PTR(objp)))
|
||||
return;
|
||||
local_irq_save(flags);
|
||||
@ -3784,8 +3784,6 @@ void kfree(const void *objp)
|
||||
debug_check_no_obj_freed(objp, obj_size(c));
|
||||
__cache_free(c, (void *)objp);
|
||||
local_irq_restore(flags);
|
||||
|
||||
kmemtrace_mark_free(KMEMTRACE_TYPE_KMALLOC, _RET_IP_, objp);
|
||||
}
|
||||
EXPORT_SYMBOL(kfree);
|
||||
|
||||
|
Reference in New Issue
Block a user