X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-s390%2Fbug.h;fp=include%2Fasm-s390%2Fbug.h;h=87689836394442804ce094da6358dd898c272081;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=a2e7430aafa625b53cc889a998b4ad972f876763;hpb=76828883507a47dae78837ab5dec5a5b4513c667;p=linux-2.6.git diff --git a/include/asm-s390/bug.h b/include/asm-s390/bug.h index a2e7430aa..876898363 100644 --- a/include/asm-s390/bug.h +++ b/include/asm-s390/bug.h @@ -4,9 +4,19 @@ #include #ifdef CONFIG_BUG + +static inline __attribute__((noreturn)) void __do_illegal_op(void) +{ +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) + __builtin_trap(); +#else + asm volatile(".long 0"); +#endif +} + #define BUG() do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ - __asm__ __volatile__(".long 0"); \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ + __do_illegal_op(); \ } while (0) #define HAVE_ARCH_BUG