aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/kmemleak.h
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2009-07-07 10:33:00 +0100
committerCatalin Marinas <catalin.marinas@arm.com>2009-07-08 14:25:14 +0100
commit53238a60dd4a679f6fe5613a7ed46899587205cf (patch)
treed2224ecfb18f7e9c6cc6fb2a48d81a87e5d5b62a /include/linux/kmemleak.h
parentkmemleak: Trace the kmalloc_large* functions in slub (diff)
downloadlinux-dev-53238a60dd4a679f6fe5613a7ed46899587205cf.tar.xz
linux-dev-53238a60dd4a679f6fe5613a7ed46899587205cf.zip
kmemleak: Allow partial freeing of memory blocks
Functions like free_bootmem() are allowed to free only part of a memory block. This patch adds support for this via the kmemleak_free_part() callback which removes the original object and creates one or two additional objects as a result of the memory block split. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Ingo Molnar <mingo@elte.hu> Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Diffstat (limited to 'include/linux/kmemleak.h')
-rw-r--r--include/linux/kmemleak.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/kmemleak.h b/include/linux/kmemleak.h
index 7796aed6cdd5..6a63807f714e 100644
--- a/include/linux/kmemleak.h
+++ b/include/linux/kmemleak.h
@@ -27,6 +27,7 @@ extern void kmemleak_init(void);
extern void kmemleak_alloc(const void *ptr, size_t size, int min_count,
gfp_t gfp);
extern void kmemleak_free(const void *ptr);
+extern void kmemleak_free_part(const void *ptr, size_t size);
extern void kmemleak_padding(const void *ptr, unsigned long offset,
size_t size);
extern void kmemleak_not_leak(const void *ptr);
@@ -71,6 +72,9 @@ static inline void kmemleak_alloc_recursive(const void *ptr, size_t size,
static inline void kmemleak_free(const void *ptr)
{
}
+static inline void kmemleak_free_part(const void *ptr, size_t size)
+{
+}
static inline void kmemleak_free_recursive(const void *ptr, unsigned long flags)
{
}