Merge tag 'drm-next-2019-09-27' of git://anongit.freedesktop.org/drm/drm
[linux-2.6-microblaze.git] / lib / bug.c
index 1077366..8c98af0 100644 (file)
--- 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