diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-08-21 07:28:24 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-08-21 07:28:24 -0400 |
| commit | 470fba7ebe60ad9185056b080b331abad24b4df9 (patch) | |
| tree | f83bc13d97adaf5dd0e0f1d6a157b890f868577f /lib/debugobjects.c | |
| parent | 7225e75144b9718cbbe1820d9c011c809d5773fd (diff) | |
| parent | 6a55617ed5d1aa62b850de2cf66f5ede2eef4825 (diff) | |
Merge branch 'linus' into x86/doc
Diffstat (limited to 'lib/debugobjects.c')
| -rw-r--r-- | lib/debugobjects.c | 19 |
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 | ||
| 227 | static void debug_object_is_on_stack(void *addr, int onstack) | 226 | static 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; |
