Commit e2e7e093259d4c6b73b432122974393d6fcdfc2a

Authored by Anton Blanchard
Committed by Linus Torvalds
1 parent c7ff0d9c92

lib/bug.c: make WARN implementation match the kernel/panic.c one

There are a few issues with the exception based WARN implementation in
lib/bug.c:

- Inconsistent printk flags. The "cut here" line is printed at KERN_EMERG, so
  the console and all logged in users see the single line:

------------[ cut here ]------------

  for each WARN. Fix this so we print everything at KERN_WARNING to match the
  kernel/panic.c version.

- The lib/bug.c WARN would print "Badness at". Change it to match the
  kernel/panic.c version which prints "WARNING: at".

- Print the list of modules, similar to kernel/panic.c of modules, similar to
  kernel/panic.c

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Anton Blanchard <anton@samba.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 7 additions and 4 deletions Side-by-side Diff

... ... @@ -136,8 +136,6 @@
136 136  
137 137 bug = find_bug(bugaddr);
138 138  
139   - printk(KERN_EMERG "------------[ cut here ]------------\n");
140   -
141 139 file = NULL;
142 140 line = 0;
143 141 warning = 0;
144 142  
145 143  
146 144  
147 145  
... ... @@ -156,18 +154,23 @@
156 154  
157 155 if (warning) {
158 156 /* this is a WARN_ON rather than BUG/BUG_ON */
  157 + printk(KERN_WARNING "------------[ cut here ]------------\n");
  158 +
159 159 if (file)
160   - printk(KERN_ERR "Badness at %s:%u\n",
  160 + printk(KERN_WARNING "WARNING: at %s:%u\n",
161 161 file, line);
162 162 else
163   - printk(KERN_ERR "Badness at %p "
  163 + printk(KERN_WARNING "WARNING: at %p "
164 164 "[verbose debug info unavailable]\n",
165 165 (void *)bugaddr);
166 166  
  167 + print_modules();
167 168 show_regs(regs);
168 169 add_taint(BUG_GET_TAINT(bug));
169 170 return BUG_TRAP_TYPE_WARN;
170 171 }
  172 +
  173 + printk(KERN_EMERG "------------[ cut here ]------------\n");
171 174  
172 175 if (file)
173 176 printk(KERN_CRIT "kernel BUG at %s:%u!\n",