aboutsummaryrefslogtreecommitdiffstats
path: root/lib/debugobjects.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/debugobjects.c')
-rw-r--r--lib/debugobjects.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index 994be4805cec..14afeeb7d6ef 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -135,7 +135,6 @@ static void fill_pool(void)
135 if (!new) 135 if (!new)
136 return; 136 return;
137 137
138 kmemleak_ignore(new);
139 raw_spin_lock_irqsave(&pool_lock, flags); 138 raw_spin_lock_irqsave(&pool_lock, flags);
140 hlist_add_head(&new->node, &obj_pool); 139 hlist_add_head(&new->node, &obj_pool);
141 debug_objects_allocated++; 140 debug_objects_allocated++;
@@ -360,9 +359,12 @@ static void debug_object_is_on_stack(void *addr, int onstack)
360 359
361 limit++; 360 limit++;
362 if (is_on_stack) 361 if (is_on_stack)
363 pr_warn("object is on stack, but not annotated\n"); 362 pr_warn("object %p is on stack %p, but NOT annotated.\n", addr,
363 task_stack_page(current));
364 else 364 else
365 pr_warn("object is not on stack, but annotated\n"); 365 pr_warn("object %p is NOT on stack %p, but annotated.\n", addr,
366 task_stack_page(current));
367
366 WARN_ON(1); 368 WARN_ON(1);
367} 369}
368 370
@@ -1125,7 +1127,6 @@ static int __init debug_objects_replace_static_objects(void)
1125 obj = kmem_cache_zalloc(obj_cache, GFP_KERNEL); 1127 obj = kmem_cache_zalloc(obj_cache, GFP_KERNEL);
1126 if (!obj) 1128 if (!obj)
1127 goto free; 1129 goto free;
1128 kmemleak_ignore(obj);
1129 hlist_add_head(&obj->node, &objects); 1130 hlist_add_head(&obj->node, &objects);
1130 } 1131 }
1131 1132
@@ -1181,12 +1182,12 @@ void __init debug_objects_mem_init(void)
1181 1182
1182 obj_cache = kmem_cache_create("debug_objects_cache", 1183 obj_cache = kmem_cache_create("debug_objects_cache",
1183 sizeof (struct debug_obj), 0, 1184 sizeof (struct debug_obj), 0,
1184 SLAB_DEBUG_OBJECTS, NULL); 1185 SLAB_DEBUG_OBJECTS | SLAB_NOLEAKTRACE,
1186 NULL);
1185 1187
1186 if (!obj_cache || debug_objects_replace_static_objects()) { 1188 if (!obj_cache || debug_objects_replace_static_objects()) {
1187 debug_objects_enabled = 0; 1189 debug_objects_enabled = 0;
1188 if (obj_cache) 1190 kmem_cache_destroy(obj_cache);
1189 kmem_cache_destroy(obj_cache);
1190 pr_warn("out of memory.\n"); 1191 pr_warn("out of memory.\n");
1191 } else 1192 } else
1192 debug_objects_selftest(); 1193 debug_objects_selftest();