Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

bug: Implement WARN_ON() using __WARN_FLAGS()

This completes 3bc3c9c3ab6d ("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

+21 -7
+21 -7
include/asm-generic/bug.h
··· 109 109 } while (0) 110 110 #else 111 111 #define __WARN() __WARN_FLAGS("", BUGFLAG_TAINT(TAINT_WARN)) 112 + 112 113 #define __WARN_printf(taint, arg...) do { \ 113 114 instrumentation_begin(); \ 114 115 __warn_printk(arg); \ 115 116 __WARN_FLAGS("", BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\ 116 117 instrumentation_end(); \ 117 118 } 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); \ 125 127 }) 126 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); \ 138 + }) 139 + #endif 140 + #endif /* __WARN_FLAGS */ 127 141 128 142 /* used internally by panic.c */ 129 143