diff options
Diffstat (limited to 'include/asm-s390/bug.h')
-rw-r--r-- | include/asm-s390/bug.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/asm-s390/bug.h b/include/asm-s390/bug.h index 7ddaa05b98d8..876898363944 100644 --- a/include/asm-s390/bug.h +++ b/include/asm-s390/bug.h | |||
@@ -5,9 +5,18 @@ | |||
5 | 5 | ||
6 | #ifdef CONFIG_BUG | 6 | #ifdef CONFIG_BUG |
7 | 7 | ||
8 | static inline __attribute__((noreturn)) void __do_illegal_op(void) | ||
9 | { | ||
10 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) | ||
11 | __builtin_trap(); | ||
12 | #else | ||
13 | asm volatile(".long 0"); | ||
14 | #endif | ||
15 | } | ||
16 | |||
8 | #define BUG() do { \ | 17 | #define BUG() do { \ |
9 | printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ | 18 | printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ |
10 | __builtin_trap(); \ | 19 | __do_illegal_op(); \ |
11 | } while (0) | 20 | } while (0) |
12 | 21 | ||
13 | #define HAVE_ARCH_BUG | 22 | #define HAVE_ARCH_BUG |