diff options
Diffstat (limited to 'lib/bug.c')
-rw-r--r-- | lib/bug.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -175,6 +175,17 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs) | |||
175 | pr_warn("WARNING: at %p [verbose debug info unavailable]\n", | 175 | pr_warn("WARNING: at %p [verbose debug info unavailable]\n", |
176 | (void *)bugaddr); | 176 | (void *)bugaddr); |
177 | 177 | ||
178 | if (panic_on_warn) { | ||
179 | /* | ||
180 | * This thread may hit another WARN() in the panic path. | ||
181 | * Resetting this prevents additional WARN() from | ||
182 | * panicking the system on this thread. Other threads | ||
183 | * are blocked by the panic_mutex in panic(). | ||
184 | */ | ||
185 | panic_on_warn = 0; | ||
186 | panic("panic_on_warn set ...\n"); | ||
187 | } | ||
188 | |||
178 | print_modules(); | 189 | print_modules(); |
179 | show_regs(regs); | 190 | show_regs(regs); |
180 | print_oops_end_marker(); | 191 | print_oops_end_marker(); |