".section .rodata.str,\"aMS\",@progbits,1\n"    \
                "2:     .asciz  \""__FILE__"\"\n"               \
                ".previous\n"                                   \
-               ".section __bug_table,\"aw\"\n"                 \
+               ".section __bug_table,\"awM\",@progbits,%2\n"   \
                "3:     .long   1b-3b,2b-3b\n"                  \
                "       .short  %0,%1\n"                        \
                "       .org    3b+%2\n"                        \
 
 #else /* CONFIG_DEBUG_BUGVERBOSE */
 
-#define __EMIT_BUG(x) do {                             \
-       asm volatile(                                   \
-               "0:     j       0b+2\n"                 \
-               "1:\n"                                  \
-               ".section __bug_table,\"aw\"\n"         \
-               "2:     .long   1b-2b\n"                \
-               "       .short  %0\n"                   \
-               "       .org    2b+%1\n"                \
-               ".previous\n"                           \
-               : : "i" (x),                            \
-                   "i" (sizeof(struct bug_entry)));    \
+#define __EMIT_BUG(x) do {                                     \
+       asm volatile(                                           \
+               "0:     j       0b+2\n"                         \
+               "1:\n"                                          \
+               ".section __bug_table,\"awM\",@progbits,%1\n"   \
+               "2:     .long   1b-2b\n"                        \
+               "       .short  %0\n"                           \
+               "       .org    2b+%1\n"                        \
+               ".previous\n"                                   \
+               : : "i" (x),                                    \
+                   "i" (sizeof(struct bug_entry)));            \
 } while (0)
 
 #endif /* CONFIG_DEBUG_BUGVERBOSE */