No need to have the HAVE_ARCH_BUG.* / HAVE_ARCH_WARN.* defines, when
the generic implementation can just use #ifndef on the macros themselves.
Also, introduce __WARN() in the generic case, so the generic WARN_ON()
can use arch-specific code for when the condition is true.
Built on powerpc, i386, sh and sparc64.
Signed-off-by: Olof Johansson <[email protected]>
Index: k.org/include/asm-generic/bug.h
===================================================================
--- k.org.orig/include/asm-generic/bug.h
+++ k.org/include/asm-generic/bug.h
@@ -20,39 +20,44 @@ struct bug_entry {
#define BUGFLAG_WARNING (1<<0)
#endif /* CONFIG_GENERIC_BUG */
-#ifndef HAVE_ARCH_BUG
+#ifndef BUG
#define BUG() do { \
printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
panic("BUG!"); \
} while (0)
#endif
-#ifndef HAVE_ARCH_BUG_ON
+#ifndef BUG_ON
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0)
#endif
-#ifndef HAVE_ARCH_WARN_ON
+#ifndef __WARN
+#define __WARN() do { \
+ printk("WARNING: at %s:%d %s()\n", __FILE__, \
+ __LINE__, __FUNCTION__); \
+ dump_stack(); \
+} while (0)
+#endif
+
+#ifndef WARN_ON
#define WARN_ON(condition) ({ \
int __ret_warn_on = !!(condition); \
- if (unlikely(__ret_warn_on)) { \
- printk("WARNING: at %s:%d %s()\n", __FILE__, \
- __LINE__, __FUNCTION__); \
- dump_stack(); \
- } \
+ if (unlikely(__ret_warn_on)) \
+ __WARN(); \
unlikely(__ret_warn_on); \
})
#endif
#else /* !CONFIG_BUG */
-#ifndef HAVE_ARCH_BUG
+#ifndef BUG
#define BUG()
#endif
-#ifndef HAVE_ARCH_BUG_ON
+#ifndef BUG_ON
#define BUG_ON(condition) do { if (condition) ; } while(0)
#endif
-#ifndef HAVE_ARCH_WARN_ON
+#ifndef WARN_ON
#define WARN_ON(condition) ({ \
int __ret_warn_on = !!(condition); \
unlikely(__ret_warn_on); \
Index: k.org/include/asm-parisc/bug.h
===================================================================
--- k.org.orig/include/asm-parisc/bug.h
+++ k.org/include/asm-parisc/bug.h
@@ -7,8 +7,6 @@
*/
#ifdef CONFIG_BUG
-#define HAVE_ARCH_BUG
-#define HAVE_ARCH_WARN_ON
/* the break instruction is used as BUG() marker. */
#define PARISC_BUG_BREAK_ASM "break 0x1f, 0x1fff"
Index: k.org/include/asm-powerpc/bug.h
===================================================================
--- k.org.orig/include/asm-powerpc/bug.h
+++ k.org/include/asm-powerpc/bug.h
@@ -109,9 +109,6 @@
unlikely(__ret_warn_on); \
})
-#define HAVE_ARCH_BUG
-#define HAVE_ARCH_BUG_ON
-#define HAVE_ARCH_WARN_ON
#endif /* __ASSEMBLY __ */
#endif /* CONFIG_BUG */
Index: k.org/include/asm-sh/bug.h
===================================================================
--- k.org.orig/include/asm-sh/bug.h
+++ k.org/include/asm-sh/bug.h
@@ -4,8 +4,6 @@
#define TRAPA_BUG_OPCODE 0xc33e /* trapa #0x3e */
#ifdef CONFIG_BUG
-#define HAVE_ARCH_BUG
-#define HAVE_ARCH_WARN_ON
/**
* _EMIT_BUG_ENTRY
Index: k.org/include/asm-alpha/bug.h
===================================================================
--- k.org.orig/include/asm-alpha/bug.h
+++ k.org/include/asm-alpha/bug.h
@@ -10,7 +10,6 @@
__asm__ __volatile__("call_pal %0 # bugchk\n\t"".long %1\n\t.8byte %2" \
: : "i" (PAL_bugchk), "i"(__LINE__), "i"(__FILE__))
-#define HAVE_ARCH_BUG
#endif
#include <asm-generic/bug.h>
Index: k.org/include/asm-arm/bug.h
===================================================================
--- k.org.orig/include/asm-arm/bug.h
+++ k.org/include/asm-arm/bug.h
@@ -16,7 +16,6 @@ extern void __bug(const char *file, int
#endif
-#define HAVE_ARCH_BUG
#endif
#include <asm-generic/bug.h>
Index: k.org/include/asm-avr32/bug.h
===================================================================
--- k.org.orig/include/asm-avr32/bug.h
+++ k.org/include/asm-avr32/bug.h
@@ -63,9 +63,6 @@
unlikely(__ret_warn_on); \
})
-#define HAVE_ARCH_BUG
-#define HAVE_ARCH_WARN_ON
-
#endif /* CONFIG_BUG */
#include <asm-generic/bug.h>
Index: k.org/include/asm-frv/bug.h
===================================================================
--- k.org.orig/include/asm-frv/bug.h
+++ k.org/include/asm-frv/bug.h
@@ -32,7 +32,6 @@ do { \
asm volatile("nop"); \
} while(0)
-#define HAVE_ARCH_BUG
#define BUG() \
do { \
_debug_bug_printk(); \
Index: k.org/include/asm-ia64/bug.h
===================================================================
--- k.org.orig/include/asm-ia64/bug.h
+++ k.org/include/asm-ia64/bug.h
@@ -6,7 +6,6 @@
#define BUG() do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); ia64_abort(); } while (0)
/* should this BUG be made generic? */
-#define HAVE_ARCH_BUG
#endif
#include <asm-generic/bug.h>
Index: k.org/include/asm-m68k/bug.h
===================================================================
--- k.org.orig/include/asm-m68k/bug.h
+++ k.org/include/asm-m68k/bug.h
@@ -21,7 +21,6 @@
} while (0)
#endif
-#define HAVE_ARCH_BUG
#endif
#include <asm-generic/bug.h>
Index: k.org/include/asm-mips/bug.h
===================================================================
--- k.org.orig/include/asm-mips/bug.h
+++ k.org/include/asm-mips/bug.h
@@ -12,8 +12,6 @@ do { \
__asm__ __volatile__("break %0" : : "i" (BRK_BUG)); \
} while (0)
-#define HAVE_ARCH_BUG
-
#if (_MIPS_ISA > _MIPS_ISA_MIPS1)
#define BUG_ON(condition) \
@@ -22,8 +20,6 @@ do { \
: : "r" (condition), "i" (BRK_BUG)); \
} while (0)
-#define HAVE_ARCH_BUG_ON
-
#endif /* _MIPS_ISA > _MIPS_ISA_MIPS1 */
#endif
Index: k.org/include/asm-s390/bug.h
===================================================================
--- k.org.orig/include/asm-s390/bug.h
+++ k.org/include/asm-s390/bug.h
@@ -61,8 +61,6 @@
unlikely(__ret_warn_on); \
})
-#define HAVE_ARCH_BUG
-#define HAVE_ARCH_WARN_ON
#endif /* CONFIG_BUG */
#include <asm-generic/bug.h>
Index: k.org/include/asm-sh64/bug.h
===================================================================
--- k.org.orig/include/asm-sh64/bug.h
+++ k.org/include/asm-sh64/bug.h
@@ -11,7 +11,6 @@
*(volatile int *)0 = 0; \
} while (0)
-#define HAVE_ARCH_BUG
#endif
#include <asm-generic/bug.h>
Index: k.org/include/asm-sparc/bug.h
===================================================================
--- k.org.orig/include/asm-sparc/bug.h
+++ k.org/include/asm-sparc/bug.h
@@ -26,7 +26,6 @@ extern void do_BUG(const char *file, int
#define BUG() __bug_trap()
#endif
-#define HAVE_ARCH_BUG
#endif
#include <asm-generic/bug.h>
Index: k.org/include/asm-sparc64/bug.h
===================================================================
--- k.org.orig/include/asm-sparc64/bug.h
+++ k.org/include/asm-sparc64/bug.h
@@ -14,7 +14,6 @@ extern void do_BUG(const char *file, int
#define BUG() __builtin_trap()
#endif
-#define HAVE_ARCH_BUG
#endif
#include <asm-generic/bug.h>
Index: k.org/include/asm-v850/bug.h
===================================================================
--- k.org.orig/include/asm-v850/bug.h
+++ k.org/include/asm-v850/bug.h
@@ -17,7 +17,6 @@
#ifdef CONFIG_BUG
extern void __bug (void) __attribute__ ((noreturn));
#define BUG() __bug()
-#define HAVE_ARCH_BUG
#endif
#include <asm-generic/bug.h>
Index: k.org/include/asm-x86/bug.h
===================================================================
--- k.org.orig/include/asm-x86/bug.h
+++ k.org/include/asm-x86/bug.h
@@ -2,7 +2,6 @@
#define _ASM_X86_BUG_H
#ifdef CONFIG_BUG
-#define HAVE_ARCH_BUG
#ifdef CONFIG_DEBUG_BUGVERBOSE
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]