diff options
Diffstat (limited to 'lib/bug.c')
| -rw-r--r-- | lib/bug.c | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/bug.c b/lib/bug.c index 1077366f496b..8c98af0bf585 100644 --- a/lib/bug.c +++ b/lib/bug.c @@ -181,6 +181,15 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)  		}  	} +	/* +	 * BUG() and WARN_ON() families don't print a custom debug message +	 * before triggering the exception handler, so we must add the +	 * "cut here" line now. WARN() issues its own "cut here" before the +	 * extra debugging message it writes before triggering the handler. +	 */ +	if ((bug->flags & BUGFLAG_NO_CUT_HERE) == 0) +		printk(KERN_DEFAULT CUT_HERE); +  	if (warning) {  		/* this is a WARN_ON rather than BUG/BUG_ON */  		__warn(file, line, (void *)bugaddr, BUG_GET_TAINT(bug), regs, @@ -188,8 +197,6 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)  		return BUG_TRAP_TYPE_WARN;  	} -	printk(KERN_DEFAULT CUT_HERE); -  	if (file)  		pr_crit("kernel BUG at %s:%u!\n", file, line);  	else  |