fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / asm-s390 / bug.h
index d596393..8768983 100644 (file)
@@ -3,25 +3,25 @@
 
 #include <linux/kernel.h>
 
-#define BUG() do { \
-        printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
-        __asm__ __volatile__(".long 0"); \
-} while (0)                                       
-
-#define BUG_ON(condition) do { \
-       if (unlikely((condition)!=0)) \
-               BUG(); \
-} while(0)
+#ifdef CONFIG_BUG
 
-#define PAGE_BUG(page) do { \
-        BUG(); \
-} while (0)                      
+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 WARN_ON(condition) do { \
-       if (unlikely((condition)!=0)) { \
-               printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
-               dump_stack(); \
-       } \
+#define BUG() do { \
+       printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
+       __do_illegal_op(); \
 } while (0)
 
+#define HAVE_ARCH_BUG
+#endif
+
+#include <asm-generic/bug.h>
+
 #endif