aboutsummaryrefslogtreecommitdiffstats
path: root/lib/debugobjects.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/debugobjects.c')
-rw-r--r--lib/debugobjects.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index 85b18d79be89..45a6bde762d1 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -205,9 +205,8 @@ static void debug_print_object(struct debug_obj *obj, char *msg)
205 205
206 if (limit < 5 && obj->descr != descr_test) { 206 if (limit < 5 && obj->descr != descr_test) {
207 limit++; 207 limit++;
208 printk(KERN_ERR "ODEBUG: %s %s object type: %s\n", msg, 208 WARN(1, KERN_ERR "ODEBUG: %s %s object type: %s\n", msg,
209 obj_states[obj->state], obj->descr->name); 209 obj_states[obj->state], obj->descr->name);
210 WARN_ON(1);
211 } 210 }
212 debug_objects_warnings++; 211 debug_objects_warnings++;
213} 212}
@@ -226,15 +225,13 @@ debug_object_fixup(int (*fixup)(void *addr, enum debug_obj_state state),
226 225
227static void debug_object_is_on_stack(void *addr, int onstack) 226static void debug_object_is_on_stack(void *addr, int onstack)
228{ 227{
229 void *stack = current->stack;
230 int is_on_stack; 228 int is_on_stack;
231 static int limit; 229 static int limit;
232 230
233 if (limit > 4) 231 if (limit > 4)
234 return; 232 return;
235 233
236 is_on_stack = (addr >= stack && addr < (stack + THREAD_SIZE)); 234 is_on_stack = object_is_on_stack(addr);
237
238 if (is_on_stack == onstack) 235 if (is_on_stack == onstack)
239 return; 236 return;
240 237
@@ -735,26 +732,22 @@ check_results(void *addr, enum debug_obj_state state, int fixups, int warnings)
735 732
736 obj = lookup_object(addr, db); 733 obj = lookup_object(addr, db);
737 if (!obj && state != ODEBUG_STATE_NONE) { 734 if (!obj && state != ODEBUG_STATE_NONE) {
738 printk(KERN_ERR "ODEBUG: selftest object not found\n"); 735 WARN(1, KERN_ERR "ODEBUG: selftest object not found\n");
739 WARN_ON(1);
740 goto out; 736 goto out;
741 } 737 }
742 if (obj && obj->state != state) { 738 if (obj && obj->state != state) {
743 printk(KERN_ERR "ODEBUG: selftest wrong state: %d != %d\n", 739 WARN(1, KERN_ERR "ODEBUG: selftest wrong state: %d != %d\n",
744 obj->state, state); 740 obj->state, state);
745 WARN_ON(1);
746 goto out; 741 goto out;
747 } 742 }
748 if (fixups != debug_objects_fixups) { 743 if (fixups != debug_objects_fixups) {
749 printk(KERN_ERR "ODEBUG: selftest fixups failed %d != %d\n", 744 WARN(1, KERN_ERR "ODEBUG: selftest fixups failed %d != %d\n",
750 fixups, debug_objects_fixups); 745 fixups, debug_objects_fixups);
751 WARN_ON(1);
752 goto out; 746 goto out;
753 } 747 }
754 if (warnings != debug_objects_warnings) { 748 if (warnings != debug_objects_warnings) {
755 printk(KERN_ERR "ODEBUG: selftest warnings failed %d != %d\n", 749 WARN(1, KERN_ERR "ODEBUG: selftest warnings failed %d != %d\n",
756 warnings, debug_objects_warnings); 750 warnings, debug_objects_warnings);
757 WARN_ON(1);
758 goto out; 751 goto out;
759 } 752 }
760 res = 0; 753 res = 0;