Skip to content

Commit 3fd45b8

Browse files
author
Peter Zijlstra
committed
bug: Implement WARN_ON() using __WARN_FLAGS()
This completes 3bc3c9c ("bugs/core: Pass down the condition string of WARN_ON_ONCE(cond) warnings to __WARN_FLAGS()") and makes WARN_ON() and WARN_ON_ONCE() behaviour consistent. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20251110115757.690999560@infradead.org
1 parent 7d2c27a commit 3fd45b8

1 file changed

Lines changed: 21 additions & 7 deletions

File tree

include/asm-generic/bug.h

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,21 +109,35 @@ extern __printf(1, 2) void __warn_printk(const char *fmt, ...);
109109
} while (0)
110110
#else
111111
#define __WARN() __WARN_FLAGS("", BUGFLAG_TAINT(TAINT_WARN))
112+
112113
#define __WARN_printf(taint, arg...) do { \
113114
instrumentation_begin(); \
114115
__warn_printk(arg); \
115116
__WARN_FLAGS("", BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\
116117
instrumentation_end(); \
117118
} while (0)
118-
#define WARN_ON_ONCE(condition) ({ \
119-
int __ret_warn_on = !!(condition); \
120-
if (unlikely(__ret_warn_on)) \
121-
__WARN_FLAGS("["#condition"] ", \
122-
BUGFLAG_ONCE | \
123-
BUGFLAG_TAINT(TAINT_WARN)); \
124-
unlikely(__ret_warn_on); \
119+
120+
#ifndef WARN_ON
121+
#define WARN_ON(condition) ({ \
122+
int __ret_warn_on = !!(condition); \
123+
if (unlikely(__ret_warn_on)) \
124+
__WARN_FLAGS("["#condition"] ", \
125+
BUGFLAG_TAINT(TAINT_WARN)); \
126+
unlikely(__ret_warn_on); \
127+
})
128+
#endif
129+
130+
#ifndef WARN_ON_ONCE
131+
#define WARN_ON_ONCE(condition) ({ \
132+
int __ret_warn_on = !!(condition); \
133+
if (unlikely(__ret_warn_on)) \
134+
__WARN_FLAGS("["#condition"] ", \
135+
BUGFLAG_ONCE | \
136+
BUGFLAG_TAINT(TAINT_WARN)); \
137+
unlikely(__ret_warn_on); \
125138
})
126139
#endif
140+
#endif /* __WARN_FLAGS */
127141

128142
/* used internally by panic.c */
129143

0 commit comments

Comments
 (0)