]> Gentwo Git Trees - linux/.git/commitdiff
Merge commit 'linus' into core/bugs, to resolve conflicts
authorIngo Molnar <mingo@kernel.org>
Tue, 5 Aug 2025 09:15:34 +0000 (11:15 +0200)
committerIngo Molnar <mingo@kernel.org>
Tue, 5 Aug 2025 09:15:34 +0000 (11:15 +0200)
Resolve conflicts with this commit that was developed in parallel
during the merge window:

 8c8efa93db68 ("x86/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust")

 Conflicts:
arch/riscv/include/asm/bug.h
arch/x86/include/asm/bug.h

Signed-off-by: Ingo Molnar <mingo@kernel.org>
1  2 
arch/riscv/include/asm/bug.h
arch/x86/include/asm/bug.h
kernel/panic.c
lib/Kconfig.debug

index da9b8e83934d4c1506f0c59a76e6379a6819b07f,4c03e20ad11f2d422f4648ecfb9c6089d0e76a79..6f581b84d8fc5c09ed28e7143aaf001e404b2fbc
@@@ -57,16 -56,22 +56,22 @@@ typedef u32 bug_insn_t
                        "ebreak\n"                              \
                        ".pushsection __bug_table,\"aw\"\n\t"   \
                "2:\n\t"                                        \
-                       __BUG_ENTRY "\n\t"                      \
-                       ".org 2b + %3\n\t"                      \
+               __BUG_ENTRY(file, line, flags) "\n\t"           \
+                       ".org 2b + " size "\n\t"                \
                        ".popsection"                           \
 -#define __BUG_FLAGS(flags)                                    \
++#define __BUG_FLAGS(cond_str, flags)                          \
+ do {                                                          \
+       __asm__ __volatile__ (                                  \
+               ARCH_WARN_ASM("%0", "%1", "%2", "%3")           \
                :                                               \
 -              : "i" (__FILE__), "i" (__LINE__),               \
 +              : "i" (WARN_CONDITION_STR(cond_str) __FILE__), "i" (__LINE__),  \
                  "i" (flags),                                  \
                  "i" (sizeof(struct bug_entry)));              \
  } while (0)
  #else /* CONFIG_GENERIC_BUG */
 -#define __BUG_FLAGS(flags) do {                                       \
 +#define __BUG_FLAGS(cond_str, flags) do {                     \
        __asm__ __volatile__ ("ebreak\n");                      \
  } while (0)
  #endif /* CONFIG_GENERIC_BUG */
        unreachable();                                          \
  } while (0)
  
 -#define __WARN_FLAGS(flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags))
 +#define __WARN_FLAGS(cond_str, flags) __BUG_FLAGS(cond_str, BUGFLAG_WARNING|(flags))
  
+ #define ARCH_WARN_REACHABLE
  #define HAVE_ARCH_BUG
  
  #include <asm-generic/bug.h>
index 8593976b32cbb145b6d88fa7d7dceb292c1a4099,20fcb8507ad12914ce8d0b0b68d71871bebe6b0e..e427a3f7b7516383f7dee2336ccfcbe611eac7e0
  #endif
  
  #ifdef CONFIG_DEBUG_BUGVERBOSE
+ #define __BUG_ENTRY(file, line, flags)                                        \
+       "2:\t" __BUG_REL("1b") "\t# bug_entry::bug_addr\n"              \
+       "\t" __BUG_REL(file)   "\t# bug_entry::file\n"                  \
+       "\t.word " line        "\t# bug_entry::line\n"                  \
+       "\t.word " flags       "\t# bug_entry::flags\n"
+ #else
+ #define __BUG_ENTRY(file, line, flags)                                        \
+       "2:\t" __BUG_REL("1b") "\t# bug_entry::bug_addr\n"              \
+       "\t.word " flags       "\t# bug_entry::flags\n"
+ #endif
  
- #define _BUG_FLAGS(cond_str, ins, flags, extra)                               \
- do {                                                                  \
-       asm_inline volatile("1:\t" ins "\n"                             \
-                    ".pushsection __bug_table,\"aw\"\n"                \
-                    "2:\t" __BUG_REL(1b) "\t# bug_entry::bug_addr\n"   \
-                    "\t"  __BUG_REL(%c0) "\t# bug_entry::file\n"       \
-                    "\t.word %c1"        "\t# bug_entry::line\n"       \
-                    "\t.word %c2"        "\t# bug_entry::flags\n"      \
-                    "\t.org 2b+%c3\n"                                  \
-                    ".popsection\n"                                    \
-                    extra                                              \
-                    : : "i" (WARN_CONDITION_STR(cond_str) __FILE__), "i" (__LINE__),           \
-                        "i" (flags),                                   \
-                        "i" (sizeof(struct bug_entry)));               \
- } while (0)
- #else /* !CONFIG_DEBUG_BUGVERBOSE */
- #define _BUG_FLAGS(cond_str, ins, flags, extra)                               \
- do {                                                                  \
-       asm_inline volatile("1:\t" ins "\n"                             \
-                    ".pushsection __bug_table,\"aw\"\n"                \
-                    "2:\t" __BUG_REL(1b) "\t# bug_entry::bug_addr\n"   \
-                    "\t.word %c0"        "\t# bug_entry::flags\n"      \
-                    "\t.org 2b+%c1\n"                                  \
-                    ".popsection\n"                                    \
-                    extra                                              \
-                    : : "i" (flags),                                   \
-                        "i" (sizeof(struct bug_entry)));               \
+ #define _BUG_FLAGS_ASM(ins, file, line, flags, size, extra)           \
+       "1:\t" ins "\n"                                                 \
+       ".pushsection __bug_table,\"aw\"\n"                             \
+       __BUG_ENTRY(file, line, flags)                                  \
+       "\t.org 2b + " size "\n"                                        \
+       ".popsection\n"                                                 \
+       extra
 -#define _BUG_FLAGS(ins, flags, extra)                                 \
 -do {                                                                  \
 -      asm_inline volatile(_BUG_FLAGS_ASM(ins, "%c0",                  \
 -                                         "%c1", "%c2", "%c3", extra)  \
 -                   : : "i" (__FILE__), "i" (__LINE__),                \
 -                       "i" (flags),                                   \
 -                       "i" (sizeof(struct bug_entry)));               \
++#define _BUG_FLAGS(cond_str, ins, flags, extra)                                               \
++do {                                                                                  \
++      asm_inline volatile(_BUG_FLAGS_ASM(ins, "%c0",                                  \
++                                         "%c1", "%c2", "%c3", extra)                  \
++                   : : "i" (WARN_CONDITION_STR(cond_str) __FILE__), "i" (__LINE__),   \
++                       "i" (flags),                                                   \
++                       "i" (sizeof(struct bug_entry)));                               \
  } while (0)
  
- #endif /* CONFIG_DEBUG_BUGVERBOSE */
+ #define ARCH_WARN_ASM(file, line, flags, size)                                \
+       _BUG_FLAGS_ASM(ASM_UD2, file, line, flags, size, "")
  
  #else
  
@@@ -92,12 -89,15 +89,15 @@@ 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(cond_str, flags)                         \
- do {                                                          \
-       __auto_type __flags = BUGFLAG_WARNING|(flags);          \
-       instrumentation_begin();                                \
-       _BUG_FLAGS(cond_str, ASM_UD2, __flags, ANNOTATE_REACHABLE(1b)); \
-       instrumentation_end();                                  \
+ #define ARCH_WARN_REACHABLE   ANNOTATE_REACHABLE(1b)
 -#define __WARN_FLAGS(flags)                                   \
 -do {                                                          \
 -      __auto_type __flags = BUGFLAG_WARNING|(flags);          \
 -      instrumentation_begin();                                \
 -      _BUG_FLAGS(ASM_UD2, __flags, ARCH_WARN_REACHABLE);      \
 -      instrumentation_end();                                  \
++#define __WARN_FLAGS(cond_str, flags)                                 \
++do {                                                                  \
++      __auto_type __flags = BUGFLAG_WARNING|(flags);                  \
++      instrumentation_begin();                                        \
++      _BUG_FLAGS(cond_str, ASM_UD2, __flags, ARCH_WARN_REACHABLE);    \
++      instrumentation_end();                                          \
  } while (0)
  
  #include <asm-generic/bug.h>
diff --cc kernel/panic.c
Simple merge
Simple merge