Use WARN() instead of a printk+WARN_ON() pair; this way the message becomes part of the warning section for better reporting/collection. In addition, one of the if() clauses collapes into the WARN() entirely now.
Unified · Split
| @@ -205,9 +205,8 @@ static void debug_print_object(struct debug_obj *obj, char *msg) · 204 unmodified lines | ||
| 205 | 205 | |
| 206 | 206 | if (limit < 5 && obj->descr != descr_test) { |
| 207 | 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 | 209 | obj_states[obj->state], obj->descr->name); |
| 210 | − WARN_ON(1); | |
| 211 | 210 | } |
| 212 | 211 | debug_objects_warnings++; |
| 213 | 212 | } |
| @@ -733,26 +732,22 @@ check_results(void *addr, enum debug_obj_state state, int fixups, int warnings) · 519 unmodified lines | ||
| 733 | 732 | |
| 734 | 733 | obj = lookup_object(addr, db); |
| 735 | 734 | if (!obj && state != ODEBUG_STATE_NONE) { |
| 736 | − printk(KERN_ERR "ODEBUG: selftest object not found\n"); | |
| 737 | − WARN_ON(1); | |
| 735 | + WARN(1, KERN_ERR "ODEBUG: selftest object not found\n"); | |
| 738 | 736 | goto out; |
| 739 | 737 | } |
| 740 | 738 | if (obj && obj->state != state) { |
| 741 | − printk(KERN_ERR "ODEBUG: selftest wrong state: %d != %d\n", | |
| 739 | + WARN(1, KERN_ERR "ODEBUG: selftest wrong state: %d != %d\n", | |
| 742 | 740 | obj->state, state); |
| 743 | − WARN_ON(1); | |
| 744 | 741 | goto out; |
| 745 | 742 | } |
| 746 | 743 | if (fixups != debug_objects_fixups) { |
| 747 | − printk(KERN_ERR "ODEBUG: selftest fixups failed %d != %d\n", | |
| 744 | + WARN(1, KERN_ERR "ODEBUG: selftest fixups failed %d != %d\n", | |
| 748 | 745 | fixups, debug_objects_fixups); |
| 749 | − WARN_ON(1); | |
| 750 | 746 | goto out; |
| 751 | 747 | } |
| 752 | 748 | if (warnings != debug_objects_warnings) { |
| 753 | − printk(KERN_ERR "ODEBUG: selftest warnings failed %d != %d\n", | |
| 749 | + WARN(1, KERN_ERR "ODEBUG: selftest warnings failed %d != %d\n", | |
| 754 | 750 | warnings, debug_objects_warnings); |
| 755 | − WARN_ON(1); | |
| 756 | 751 | goto out; |
| 757 | 752 | } |
| 758 | 753 | res = 0; |
| @@ -40,8 +40,7 @@ static void bad_io_access(unsigned long port, const char *access) · 39 unmodified lines | ||
| 40 | 40 | static int count = 10; |
| 41 | 41 | if (count) { |
| 42 | 42 | count--; |
| 43 | − printk(KERN_ERR "Bad IO access at port %#lx (%s)\n", port, access); | |
| 44 | − WARN_ON(1); | |
| 43 | + WARN(1, KERN_ERR "Bad IO access at port %#lx (%s)\n", port, access); | |
| 45 | 44 | } |
| 46 | 45 | } |
| 47 | 46 | |
| @@ -285,8 +285,7 @@ int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...) · 284 unmodified lines | ||
| 285 | 285 | int len; |
| 286 | 286 | |
| 287 | 287 | if (env->envp_idx >= ARRAY_SIZE(env->envp)) { |
| 288 | − printk(KERN_ERR "add_uevent_var: too many keys\n"); | |
| 289 | − WARN_ON(1); | |
| 288 | + WARN(1, KERN_ERR "add_uevent_var: too many keys\n"); | |
| 290 | 289 | return -ENOMEM; |
| 291 | 290 | } |
| 292 | 291 | |
| @@ -297,8 +296,7 @@ int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...) · 4 unmodified lines | ||
| 297 | 296 | va_end(args); |
| 298 | 297 | |
| 299 | 298 | if (len >= (sizeof(env->buf) - env->buflen)) { |
| 300 | − printk(KERN_ERR "add_uevent_var: buffer size too small\n"); | |
| 301 | − WARN_ON(1); | |
| 299 | + WARN(1, KERN_ERR "add_uevent_var: buffer size too small\n"); | |
| 302 | 300 | return -ENOMEM; |
| 303 | 301 | } |
| 304 | 302 | |
| @@ -31,12 +31,13 @@ · 30 unmodified lines | ||
| 31 | 31 | static void plist_check_prev_next(struct list_head *t, struct list_head *p, |
| 32 | 32 | struct list_head *n) |
| 33 | 33 | { |
| 34 | − if (n->prev != p || p->next != n) { | |
| 35 | − printk("top: %p, n: %p, p: %p\n", t, t->next, t->prev); | |
| 36 | − printk("prev: %p, n: %p, p: %p\n", p, p->next, p->prev); | |
| 37 | − printk("next: %p, n: %p, p: %p\n", n, n->next, n->prev); | |
| 38 | − WARN_ON(1); | |
| 39 | − } | |
| 34 | + WARN(n->prev != p || p->next != n, | |
| 35 | + "top: %p, n: %p, p: %p\n" | |
| 36 | + "prev: %p, n: %p, p: %p\n" | |
| 37 | + "next: %p, n: %p, p: %p\n", | |
| 38 | + t, t->next, t->prev, | |
| 39 | + p, p->next, p->prev, | |
| 40 | + n, n->next, n->prev); | |
| 40 | 41 | } |
| 41 | 42 | |
| 42 | 43 | static void plist_check_list(struct list_head *top) |