diff options
-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 | { |