In preparation for the objtool klp diff subcommand, define the entry
size for the __bug_table section in its ELF header.  This will allow
tooling to extract individual entries.

Signed-off-by: Josh Poimboeuf <jpoim...@kernel.org>
---
 arch/x86/include/asm/bug.h | 44 ++++++++++++++++++++------------------
 1 file changed, 23 insertions(+), 21 deletions(-)

diff --git a/arch/x86/include/asm/bug.h b/arch/x86/include/asm/bug.h
index fb3534ddbea2..277938f4a40b 100644
--- a/arch/x86/include/asm/bug.h
+++ b/arch/x86/include/asm/bug.h
@@ -41,33 +41,35 @@
 
 #define _BUG_FLAGS(ins, flags, extra)                                  \
 do {                                                                   \
-       asm_inline volatile("1:\t" ins "\n"                             \
-                    ".pushsection __bug_table,\"a\"\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" (__FILE__), "i" (__LINE__),                \
-                        "i" (flags),                                   \
-                        "i" (sizeof(struct bug_entry)));               \
+       asm_inline volatile(                                            \
+               "1:\t" ins "\n"                                         \
+               ".pushsection __bug_table, \"aM\", @progbits, %c3\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" (__FILE__), "i" (__LINE__),                     \
+                   "i" (flags),                                        \
+                   "i" (sizeof(struct bug_entry)));                    \
 } while (0)
 
 #else /* !CONFIG_DEBUG_BUGVERBOSE */
 
 #define _BUG_FLAGS(ins, flags, extra)                                  \
 do {                                                                   \
-       asm_inline volatile("1:\t" ins "\n"                             \
-                    ".pushsection __bug_table,\"a\"\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)));               \
+       asm_inline volatile(                                            \
+               "1:\t" ins "\n"                                         \
+               ".pushsection __bug_table, \"aM\", @progbits, %c1\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)));                    \
 } while (0)
 
 #endif /* CONFIG_DEBUG_BUGVERBOSE */
-- 
2.49.0


Reply via email to