diff options
author | Kees Cook <keescook@chromium.org> | 2019-09-25 19:48:08 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-09-25 20:51:41 -0400 |
commit | 2da1ead4d5f7fa5f61e5805655de1e245d03a763 (patch) | |
tree | 9974c7cb6d44f040f865c3a411c57f3c1903af76 | |
parent | d4bce140b4e739bceb4e239d4842cf8f346c1e0f (diff) |
bug: consolidate __WARN_FLAGS usage
Instead of having separate tests for __WARN_FLAGS, merge the two #ifdef
blocks and replace the synonym WANT_WARN_ON_SLOWPATH macro.
Link: http://lkml.kernel.org/r/20190819234111.9019-7-keescook@chromium.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Borislav Petkov <bp@suse.de>
Cc: Christophe Leroy <christophe.leroy@c-s.fr>
Cc: Drew Davenport <ddavenport@chromium.org>
Cc: Feng Tang <feng.tang@intel.com>
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
Cc: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | include/asm-generic/bug.h | 18 | ||||
-rw-r--r-- | kernel/panic.c | 2 |
2 files changed, 8 insertions, 12 deletions
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h index 4b18e09094cf..b4a2639130a0 100644 --- a/include/asm-generic/bug.h +++ b/include/asm-generic/bug.h | |||
@@ -61,16 +61,6 @@ struct bug_entry { | |||
61 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) | 61 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) |
62 | #endif | 62 | #endif |
63 | 63 | ||
64 | #ifdef __WARN_FLAGS | ||
65 | #define WARN_ON_ONCE(condition) ({ \ | ||
66 | int __ret_warn_on = !!(condition); \ | ||
67 | if (unlikely(__ret_warn_on)) \ | ||
68 | __WARN_FLAGS(BUGFLAG_ONCE | \ | ||
69 | BUGFLAG_TAINT(TAINT_WARN)); \ | ||
70 | unlikely(__ret_warn_on); \ | ||
71 | }) | ||
72 | #endif | ||
73 | |||
74 | /* | 64 | /* |
75 | * WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report | 65 | * WARN(), WARN_ON(), WARN_ON_ONCE, and so on can be used to report |
76 | * significant kernel issues that need prompt attention if they should ever | 66 | * significant kernel issues that need prompt attention if they should ever |
@@ -91,7 +81,6 @@ struct bug_entry { | |||
91 | extern __printf(4, 5) | 81 | extern __printf(4, 5) |
92 | void warn_slowpath_fmt(const char *file, const int line, unsigned taint, | 82 | void warn_slowpath_fmt(const char *file, const int line, unsigned taint, |
93 | const char *fmt, ...); | 83 | const char *fmt, ...); |
94 | #define WANT_WARN_ON_SLOWPATH | ||
95 | #define __WARN() __WARN_printf(TAINT_WARN, NULL) | 84 | #define __WARN() __WARN_printf(TAINT_WARN, NULL) |
96 | #define __WARN_printf(taint, arg...) \ | 85 | #define __WARN_printf(taint, arg...) \ |
97 | warn_slowpath_fmt(__FILE__, __LINE__, taint, arg) | 86 | warn_slowpath_fmt(__FILE__, __LINE__, taint, arg) |
@@ -105,6 +94,13 @@ extern __printf(1, 2) void __warn_printk(const char *fmt, ...); | |||
105 | __warn_printk(arg); \ | 94 | __warn_printk(arg); \ |
106 | __WARN_FLAGS(BUGFLAG_TAINT(taint)); \ | 95 | __WARN_FLAGS(BUGFLAG_TAINT(taint)); \ |
107 | } while (0) | 96 | } while (0) |
97 | #define WARN_ON_ONCE(condition) ({ \ | ||
98 | int __ret_warn_on = !!(condition); \ | ||
99 | if (unlikely(__ret_warn_on)) \ | ||
100 | __WARN_FLAGS(BUGFLAG_ONCE | \ | ||
101 | BUGFLAG_TAINT(TAINT_WARN)); \ | ||
102 | unlikely(__ret_warn_on); \ | ||
103 | }) | ||
108 | #endif | 104 | #endif |
109 | 105 | ||
110 | /* used internally by panic.c */ | 106 | /* used internally by panic.c */ |
diff --git a/kernel/panic.c b/kernel/panic.c index a643e5464296..47e8ebccc22b 100644 --- a/kernel/panic.c +++ b/kernel/panic.c | |||
@@ -596,7 +596,7 @@ void __warn(const char *file, int line, void *caller, unsigned taint, | |||
596 | add_taint(taint, LOCKDEP_STILL_OK); | 596 | add_taint(taint, LOCKDEP_STILL_OK); |
597 | } | 597 | } |
598 | 598 | ||
599 | #ifdef WANT_WARN_ON_SLOWPATH | 599 | #ifndef __WARN_FLAGS |
600 | void warn_slowpath_fmt(const char *file, int line, unsigned taint, | 600 | void warn_slowpath_fmt(const char *file, int line, unsigned taint, |
601 | const char *fmt, ...) | 601 | const char *fmt, ...) |
602 | { | 602 | { |