diff options
Diffstat (limited to 'include/asm-generic/bug.h')
-rw-r--r-- | include/asm-generic/bug.h | 18 |
1 files changed, 7 insertions, 11 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 */ |