diff options
| -rw-r--r-- | arch/s390/include/asm/bug.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index 73f65d91da50..7e0498f22f2a 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h @@ -7,11 +7,18 @@ #if defined(CONFIG_BUG) && defined(CONFIG_CC_HAS_ASM_IMMEDIATE_STRINGS) #ifdef CONFIG_DEBUG_BUGVERBOSE -#define __BUG_ENTRY_VERBOSE(file, line) \ +#define __BUG_ENTRY_VERBOSE(format, file, line) \ + " .long " format " - . # bug_entry::format\n" \ " .long " file " - . # bug_entry::file\n" \ " .short " line " # bug_entry::line\n" #else -#define __BUG_ENTRY_VERBOSE(file, line) +#define __BUG_ENTRY_VERBOSE(format, file, line) +#endif + +#ifdef CONFIG_DEBUG_BUGVERBOSE_DETAILED +#define WARN_CONDITION_STR(cond_str) cond_str +#else +#define WARN_CONDITION_STR(cond_str) "" #endif #define __BUG_ASM(cond_str, flags) \ @@ -20,12 +27,13 @@ do { \ "0: mc 0,0\n" \ " .section __bug_table,\"aw\"\n" \ "1: .long 0b - . # bug_entry::bug_addr\n" \ - __BUG_ENTRY_VERBOSE("%[file]", "%[line]") \ + __BUG_ENTRY_VERBOSE("%[frmt]", "%[file]", "%[line]") \ " .short %[flgs] # bug_entry::flags\n" \ " .org 1b+%[size]\n" \ " .previous" \ : \ - : [file] "i" (WARN_CONDITION_STR(cond_str) __FILE__), \ + : [frmt] "i" (WARN_CONDITION_STR(cond_str)), \ + [file] "i" (__FILE__), \ [line] "i" (__LINE__), \ [flgs] "i" (flags), \ [size] "i" (sizeof(struct bug_entry))); \ @@ -43,6 +51,7 @@ do { \ } while (0) #define HAVE_ARCH_BUG +#define HAVE_ARCH_BUG_FORMAT #endif /* CONFIG_BUG && CONFIG_CC_HAS_ASM_IMMEDIATE_STRINGS */ |
