Commit e2e7e093259d4c6b73b432122974393d6fcdfc2a
Committed by
Linus Torvalds
1 parent
c7ff0d9c92
Exists in
master
and in
4 other branches
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
lib/bug.c
... | ... | @@ -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", |