diff options
author | Kees Cook <keescook@chromium.org> | 2019-09-25 19:48:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-09-25 20:51:40 -0400 |
commit | d4bce140b4e739bceb4e239d4842cf8f346c1e0f (patch) | |
tree | 7b9df32d1c5e38e3578a58336a26f533e0428352 | |
parent | d38aba49a9f72b862f1220739ca837c886fdc319 (diff) |
bug: clean up helper macros to remove __WARN_TAINT()
In preparation for cleaning up "cut here" even more, this removes the
__WARN_*TAINT() helpers, as they limit the ability to add new BUGFLAG_*
flags to call sites. They are removed by expanding them into full
__WARN_FLAGS() calls.
Link: http://lkml.kernel.org/r/20190819234111.9019-6-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 | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h index 598d7072602f..4b18e09094cf 100644 --- a/include/asm-generic/bug.h +++ b/include/asm-generic/bug.h | |||
@@ -62,13 +62,11 @@ struct bug_entry { | |||
62 | #endif | 62 | #endif |
63 | 63 | ||
64 | #ifdef __WARN_FLAGS | 64 | #ifdef __WARN_FLAGS |
65 | #define __WARN_TAINT(taint) __WARN_FLAGS(BUGFLAG_TAINT(taint)) | ||
66 | #define __WARN_ONCE_TAINT(taint) __WARN_FLAGS(BUGFLAG_ONCE|BUGFLAG_TAINT(taint)) | ||
67 | |||
68 | #define WARN_ON_ONCE(condition) ({ \ | 65 | #define WARN_ON_ONCE(condition) ({ \ |
69 | int __ret_warn_on = !!(condition); \ | 66 | int __ret_warn_on = !!(condition); \ |
70 | if (unlikely(__ret_warn_on)) \ | 67 | if (unlikely(__ret_warn_on)) \ |
71 | __WARN_ONCE_TAINT(TAINT_WARN); \ | 68 | __WARN_FLAGS(BUGFLAG_ONCE | \ |
69 | BUGFLAG_TAINT(TAINT_WARN)); \ | ||
72 | unlikely(__ret_warn_on); \ | 70 | unlikely(__ret_warn_on); \ |
73 | }) | 71 | }) |
74 | #endif | 72 | #endif |
@@ -89,7 +87,7 @@ struct bug_entry { | |||
89 | * | 87 | * |
90 | * Use the versions with printk format strings to provide better diagnostics. | 88 | * Use the versions with printk format strings to provide better diagnostics. |
91 | */ | 89 | */ |
92 | #ifndef __WARN_TAINT | 90 | #ifndef __WARN_FLAGS |
93 | extern __printf(4, 5) | 91 | extern __printf(4, 5) |
94 | void warn_slowpath_fmt(const char *file, const int line, unsigned taint, | 92 | void warn_slowpath_fmt(const char *file, const int line, unsigned taint, |
95 | const char *fmt, ...); | 93 | const char *fmt, ...); |
@@ -99,11 +97,14 @@ void warn_slowpath_fmt(const char *file, const int line, unsigned taint, | |||
99 | warn_slowpath_fmt(__FILE__, __LINE__, taint, arg) | 97 | warn_slowpath_fmt(__FILE__, __LINE__, taint, arg) |
100 | #else | 98 | #else |
101 | extern __printf(1, 2) void __warn_printk(const char *fmt, ...); | 99 | extern __printf(1, 2) void __warn_printk(const char *fmt, ...); |
102 | #define __WARN() do { \ | 100 | #define __WARN() do { \ |
103 | printk(KERN_WARNING CUT_HERE); __WARN_TAINT(TAINT_WARN); \ | 101 | printk(KERN_WARNING CUT_HERE); \ |
104 | } while (0) | 102 | __WARN_FLAGS(BUGFLAG_TAINT(TAINT_WARN)); \ |
105 | #define __WARN_printf(taint, arg...) \ | 103 | } while (0) |
106 | do { __warn_printk(arg); __WARN_TAINT(taint); } while (0) | 104 | #define __WARN_printf(taint, arg...) do { \ |
105 | __warn_printk(arg); \ | ||
106 | __WARN_FLAGS(BUGFLAG_TAINT(taint)); \ | ||
107 | } while (0) | ||
107 | #endif | 108 | #endif |
108 | 109 | ||
109 | /* used internally by panic.c */ | 110 | /* used internally by panic.c */ |