]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bugs/core: Extend __WARN_FLAGS() with the 'cond_str' parameter
authorIngo Molnar <mingo@kernel.org>
Thu, 15 May 2025 12:46:30 +0000 (14:46 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 13 Jun 2025 08:20:52 +0000 (10:20 +0200)
Push the new parameter down into every architecture that defines __WARN_FLAGS():

  arm64
  loongarch
  parisc
  powerpc
  riscv
  s390
  sh
  x86

Don't pass anything substantial down yet, just propagate the
new parameter with empty strings, without generating it or
using it.

( The string is never NULL, so it can be concatenated at the
  preprocessor level. )

Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-arch@vger.kernel.org
Link: https://lore.kernel.org/r/20250515124644.2958810-2-mingo@kernel.org
arch/arm64/include/asm/bug.h
arch/loongarch/include/asm/bug.h
arch/parisc/include/asm/bug.h
arch/powerpc/include/asm/bug.h
arch/riscv/include/asm/bug.h
arch/s390/include/asm/bug.h
arch/sh/include/asm/bug.h
arch/x86/include/asm/bug.h
include/asm-generic/bug.h

index 28be048db3f63a5321b501e3800aed650bb9a35f..bceeaec21fb93bc3a0044206632fb4e9206282da 100644 (file)
@@ -19,7 +19,7 @@
        unreachable();                                  \
 } while (0)
 
-#define __WARN_FLAGS(flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags))
+#define __WARN_FLAGS(cond_str, flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags))
 
 #define HAVE_ARCH_BUG
 
index f6f254f2c5db59bcf0d7b5fedf5fbfb5a9adac0d..51c2cb98d728f17c0b523072136d325fde4297d5 100644 (file)
@@ -42,7 +42,7 @@
        asm_inline volatile (__stringify(ASM_BUG_FLAGS(flags))          \
                             extra);
 
-#define __WARN_FLAGS(flags)                                    \
+#define __WARN_FLAGS(cond_str, flags)                          \
 do {                                                           \
        instrumentation_begin();                                \
        __BUG_FLAGS(BUGFLAG_WARNING|(flags), ANNOTATE_REACHABLE(10001b));\
index 833555f74ffa7241a44af41f58b32164ba381169..1a87cf80ec3c10be0e329f49f297a29c0631c05b 100644 (file)
@@ -50,7 +50,7 @@
 #endif
 
 #ifdef CONFIG_DEBUG_BUGVERBOSE
-#define __WARN_FLAGS(flags)                                            \
+#define __WARN_FLAGS(cond_str, flags)                                  \
        do {                                                            \
                asm volatile("\n"                                       \
                             "1:\t" PARISC_BUG_BREAK_ASM "\n"           \
@@ -66,7 +66,7 @@
                             "i" (sizeof(struct bug_entry)) );          \
        } while(0)
 #else
-#define __WARN_FLAGS(flags)                                            \
+#define __WARN_FLAGS(cond_str, flags)                                  \
        do {                                                            \
                asm volatile("\n"                                       \
                             "1:\t" PARISC_BUG_BREAK_ASM "\n"           \
index 1db485aacbd9b7c4e77847dbcb5e112ebb011ab2..34d39ec79720dcd73a7c34e7fce3d7b451dafcd0 100644 (file)
@@ -72,7 +72,7 @@
 } while (0)
 #define HAVE_ARCH_BUG
 
-#define __WARN_FLAGS(flags) BUG_ENTRY("twi 31, 0, 0", BUGFLAG_WARNING | (flags))
+#define __WARN_FLAGS(cond_str, flags) BUG_ENTRY("twi 31, 0, 0", BUGFLAG_WARNING | (flags))
 
 #ifdef CONFIG_PPC64
 #define BUG_ON(x) do {                                         \
index 1aaea81fb1413eeb87dc23cbd9346055fb6f6ef8..b22ee4d2c882afe88f76a6c9a6525a899ba0c330 100644 (file)
@@ -76,7 +76,7 @@ do {                                                          \
        unreachable();                                          \
 } while (0)
 
-#define __WARN_FLAGS(flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags))
+#define __WARN_FLAGS(cond_str, flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags))
 
 #define HAVE_ARCH_BUG
 
index c500d45fb465c5868f0269406f7ae6567ca5a3a0..ef3e495ec1e3c35f842c6d329f7635306e9b325c 100644 (file)
@@ -46,7 +46,7 @@
        unreachable();                                  \
 } while (0)
 
-#define __WARN_FLAGS(flags) do {                       \
+#define __WARN_FLAGS(cond_str, flags) do {             \
        __EMIT_BUG(BUGFLAG_WARNING|(flags));            \
 } while (0)
 
index 05a485c4fabcfce04b14f2077afd8cf0f4be278a..834c621ab249ac2758f0f7a2149f776a3eb626e8 100644 (file)
@@ -52,7 +52,7 @@ do {                                                  \
        unreachable();                                  \
 } while (0)
 
-#define __WARN_FLAGS(flags)                            \
+#define __WARN_FLAGS(cond_str, flags)                  \
 do {                                                   \
        __asm__ __volatile__ (                          \
                "1:\t.short %O0\n"                      \
index f0e9acf725471d8ee616b359695d030ba9a46ea3..413b86b876d90ecea39e297bffacc240ca38a59d 100644 (file)
@@ -92,7 +92,7 @@ do {                                                          \
  * were to trigger, we'd rather wreck the machine in an attempt to get the
  * message out than not know about it.
  */
-#define __WARN_FLAGS(flags)                                    \
+#define __WARN_FLAGS(cond_str, flags)                          \
 do {                                                           \
        __auto_type __flags = BUGFLAG_WARNING|(flags);          \
        instrumentation_begin();                                \
index 387720933973b6313547dc9a4431473fb6e7c85d..af76e4a04b16c8bea4409de9568e3f7de08315dd 100644 (file)
@@ -100,17 +100,18 @@ extern __printf(1, 2) void __warn_printk(const char *fmt, ...);
                instrumentation_end();                                  \
        } while (0)
 #else
-#define __WARN()               __WARN_FLAGS(BUGFLAG_TAINT(TAINT_WARN))
+#define __WARN()               __WARN_FLAGS("", BUGFLAG_TAINT(TAINT_WARN))
 #define __WARN_printf(taint, arg...) do {                              \
                instrumentation_begin();                                \
                __warn_printk(arg);                                     \
-               __WARN_FLAGS(BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\
+               __WARN_FLAGS("", BUGFLAG_NO_CUT_HERE | BUGFLAG_TAINT(taint));\
                instrumentation_end();                                  \
        } while (0)
 #define WARN_ON_ONCE(condition) ({                             \
        int __ret_warn_on = !!(condition);                      \
        if (unlikely(__ret_warn_on))                            \
-               __WARN_FLAGS(BUGFLAG_ONCE |                     \
+               __WARN_FLAGS("",                                \
+                            BUGFLAG_ONCE |                     \
                             BUGFLAG_TAINT(TAINT_WARN));        \
        unlikely(__ret_warn_on);                                \
 })