]> err.no Git - linux-2.6/blobdiff - include/asm-generic/bug.h
Merge omap tree
[linux-2.6] / include / asm-generic / bug.h
index 6e5aaaa9a2fb8d89710c357201dd83bcc69757b2..8ceab7bcd8b4f229f45536f8208e5394c99e9695 100644 (file)
@@ -2,23 +2,15 @@
 #define _ASM_GENERIC_BUG_H
 
 #include <linux/compiler.h>
-#include <linux/config.h>
 
 #ifdef CONFIG_BUG
 #ifndef HAVE_ARCH_BUG
 #define BUG() do { \
-       printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
+       printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
        panic("BUG!"); \
 } while (0)
 #endif
 
-#ifndef HAVE_ARCH_PAGE_BUG
-#define PAGE_BUG(page) do { \
-       printk("page BUG for page at %p\n", page); \
-       BUG(); \
-} while (0)
-#endif
-
 #ifndef HAVE_ARCH_BUG_ON
 #define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
 #endif
@@ -26,7 +18,7 @@
 #ifndef HAVE_ARCH_WARN_ON
 #define WARN_ON(condition) do { \
        if (unlikely((condition)!=0)) { \
-               printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \
+               printk("BUG: warning at %s:%d/%s()\n", __FILE__, __LINE__, __FUNCTION__); \
                dump_stack(); \
        } \
 } while (0)
 #define BUG()
 #endif
 
-#ifndef HAVE_ARCH_PAGE_BUG
-#define PAGE_BUG(page) do { if (page) ; } while (0)
-#endif
-
 #ifndef HAVE_ARCH_BUG_ON
 #define BUG_ON(condition) do { if (condition) ; } while(0)
 #endif
 #endif
 #endif
 
+#define WARN_ON_ONCE(condition)                                \
+({                                                     \
+       static int __warn_once = 1;                     \
+       int __ret = 0;                                  \
+                                                       \
+       if (unlikely((condition) && __warn_once)) {     \
+               __warn_once = 0;                        \
+               WARN_ON(1);                             \
+               __ret = 1;                              \
+       }                                               \
+       __ret;                                          \
+})
+
+#ifdef CONFIG_SMP
+# define WARN_ON_SMP(x)                        WARN_ON(x)
+#else
+# define WARN_ON_SMP(x)                        do { } while (0)
+#endif
+
 #endif