projects
/
platform
/
kernel
/
linux-starfive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kunit: improve KTAP compliance of KUnit test output
[platform/kernel/linux-starfive.git]
/
lib
/
bug.c
diff --git
a/lib/bug.c
b/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/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[];
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);
}
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;
{
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;
}
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;
static void clear_once_table(struct bug_entry *start, struct bug_entry *end)
{
struct bug_entry *bug;