aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-09-04 08:11:52 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2017-09-04 08:11:52 -0700
commitfea1543760351e10e9c573ddf8861c2f23f5b866 (patch)
treea8e48f2790d907d513a05f3b12ea78d1a7b83ffa
parentMerge branch 'docs-next' of git://git.lwn.net/linux (diff)
parentdebugobjects: Make kmemleak ignore debug objects (diff)
downloadlinux-dev-fea1543760351e10e9c573ddf8861c2f23f5b866.tar.xz
linux-dev-fea1543760351e10e9c573ddf8861c2f23f5b866.zip
Merge branch 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull debugobjects fix from Ingo Molnar: "A single commit making debugobjects interact better with kmemleak" * 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: debugobjects: Make kmemleak ignore debug objects
-rw-r--r--init/main.c2
-rw-r--r--lib/debugobjects.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/init/main.c b/init/main.c
index 052481fbe363..7ec20cf7b111 100644
--- a/init/main.c
+++ b/init/main.c
@@ -651,8 +651,8 @@ asmlinkage __visible void __init start_kernel(void)
}
#endif
page_ext_init();
- debug_objects_mem_init();
kmemleak_init();
+ debug_objects_mem_init();
setup_per_cpu_pageset();
numa_policy_init();
if (late_time_init)
diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index 17afb0430161..2f5349c6e81a 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -18,6 +18,7 @@
#include <linux/debugfs.h>
#include <linux/slab.h>
#include <linux/hash.h>
+#include <linux/kmemleak.h>
#define ODEBUG_HASH_BITS 14
#define ODEBUG_HASH_SIZE (1 << ODEBUG_HASH_BITS)
@@ -110,6 +111,7 @@ static void fill_pool(void)
if (!new)
return;
+ kmemleak_ignore(new);
raw_spin_lock_irqsave(&pool_lock, flags);
hlist_add_head(&new->node, &obj_pool);
debug_objects_allocated++;
@@ -1080,6 +1082,7 @@ static int __init debug_objects_replace_static_objects(void)
obj = kmem_cache_zalloc(obj_cache, GFP_KERNEL);
if (!obj)
goto free;
+ kmemleak_ignore(obj);
hlist_add_head(&obj->node, &objects);
}