kunit: improve KTAP compliance of KUnit test output
[platform/kernel/linux-starfive.git] / lib / bug.c
index c223a25..e0ff219 100644 (file)
--- a/lib/bug.c
+++ b/lib/bug.c
@@ -47,6 +47,7 @@
 #include <linux/sched.h>
 #include <linux/rculist.h>
 #include <linux/ftrace.h>
+#include <linux/context_tracking.h>
 
 extern struct bug_entry __start___bug_table[], __stop___bug_table[];
 
@@ -153,7 +154,7 @@ struct bug_entry *find_bug(unsigned long bugaddr)
        return module_find_bug(bugaddr);
 }
 
-enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)
+static enum bug_trap_type __report_bug(unsigned long bugaddr, struct pt_regs *regs)
 {
        struct bug_entry *bug;
        const char *file;
@@ -209,6 +210,18 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)
        return BUG_TRAP_TYPE_BUG;
 }
 
+enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)
+{
+       enum bug_trap_type ret;
+       bool rcu = false;
+
+       rcu = warn_rcu_enter();
+       ret = __report_bug(bugaddr, regs);
+       warn_rcu_exit(rcu);
+
+       return ret;
+}
+
 static void clear_once_table(struct bug_entry *start, struct bug_entry *end)
 {
        struct bug_entry *bug;