Skip to content

Commit b9b2c45

Browse files
author
Peter Zijlstra
committed
bug: Allow architectures to provide __WARN_printf()
In addition to providing __WARN_FLAGS(), allow an architecture to also provide __WARN_printf(). Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20251110115757.807154591@infradead.org
1 parent 3fd45b8 commit b9b2c45

1 file changed

Lines changed: 22 additions & 15 deletions

File tree

include/asm-generic/bug.h

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -100,23 +100,9 @@ void warn_slowpath_fmt(const char *file, const int line, unsigned taint,
100100
const char *fmt, ...);
101101
extern __printf(1, 2) void __warn_printk(const char *fmt, ...);
102102

103-
#ifndef __WARN_FLAGS
104-
#define __WARN() __WARN_printf(TAINT_WARN, NULL)
105-
#define __WARN_printf(taint, arg...) do { \
106-
instrumentation_begin(); \
107-
warn_slowpath_fmt(__FILE__, __LINE__, taint, arg); \
108-
instrumentation_end(); \
109-
} while (0)
110-
#else
103+
#ifdef __WARN_FLAGS
111104
#define __WARN() __WARN_FLAGS("", BUGFLAG_TAINT(TAINT_WARN))
112105

113-
#define __WARN_printf(taint, arg...) do { \
114-
instrumentation_begin(); \
115-
__warn_printk(arg); \
116-
__WARN_FLAGS("", BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\
117-
instrumentation_end(); \
118-
} while (0)
119-
120106
#ifndef WARN_ON
121107
#define WARN_ON(condition) ({ \
122108
int __ret_warn_on = !!(condition); \
@@ -139,6 +125,27 @@ extern __printf(1, 2) void __warn_printk(const char *fmt, ...);
139125
#endif
140126
#endif /* __WARN_FLAGS */
141127

128+
#if defined(__WARN_FLAGS) && !defined(__WARN_printf)
129+
#define __WARN_printf(taint, arg...) do { \
130+
instrumentation_begin(); \
131+
__warn_printk(arg); \
132+
__WARN_FLAGS("", BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\
133+
instrumentation_end(); \
134+
} while (0)
135+
#endif
136+
137+
#ifndef __WARN_printf
138+
#define __WARN_printf(taint, arg...) do { \
139+
instrumentation_begin(); \
140+
warn_slowpath_fmt(__FILE__, __LINE__, taint, arg); \
141+
instrumentation_end(); \
142+
} while (0)
143+
#endif
144+
145+
#ifndef __WARN
146+
#define __WARN() __WARN_printf(TAINT_WARN, NULL)
147+
#endif
148+
142149
/* used internally by panic.c */
143150

144151
#ifndef WARN_ON

0 commit comments

Comments
 (0)