move duplicate BUG and WARN_ON bits to asm-generic
PATCH 1/1 move duplicate BUG and WARN_ON bits to asm-generic
This moves duplicate BUG, PAGE_BUG, BUG_ON, and WARN_ON code to asm-generic and makes them slightly more consistent. This cleanup is also preparatory work for making BUG and WARN verbosity configurable.
Signed-off-by Matt Mackall <[email protected]>
include/asm-alpha/bug.h +2 -10
@@ -9,15 +9,7 @@ __asm__ __volatile__("call_pal %0 # bugchk\n\t"".long %1\n\t.8byte %2" \ : : "i" (PAL_bugchk), "i"(__LINE__), "i"(__FILE__)) -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) - -#define PAGE_BUG (page) BUG() - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-arm/bug.h +3 -11
@@ -8,23 +8,15 @@/* give file/line information */ #define BUG () __bug(__FILE__, __LINE__, NULL) -#define PAGE_BUG (page) __bug(__FILE__, __LINE__, page)#else -/* these just cause an oops */ +/* this just causes an oops */ #define BUG () (*(int *)0 = 0) -#define PAGE_BUG (page) (*(int *)0 = 0)#endif -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-arm26/bug.h +2 -15
@@ -5,26 +5,13 @@#ifdef CONFIG_DEBUG_BUGVERBOSE extern volatile void __bug (const char *file,int line,void *data); -/* give file/line information */ #define BUG () __bug(__FILE__, __LINE__, NULL) -#define PAGE_BUG (page) __bug(__FILE__, __LINE__, page) -#else - -/* these just cause an oops */ #define BUG () (*(int *)0 = 0) -#define PAGE_BUG (page) (*(int *)0 = 0) -#endif -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-cris/bug.h +1 -18
@@ -1,21 +1,4 @@#ifndef _CRIS_BUG_H#define _CRIS_BUG_H - -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ -} while (0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) - +#include <asm-generic/bug.h> #endif
include/asm-h8300/bug.h +1 -18
@@ -1,21 +1,4 @@#ifndef _H8300_BUG_H#define _H8300_BUG_H - -#define BUG () do { \ - printk("%s(%d): kernel BUG!\n", __FILE__, __LINE__); \ -} while (0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) - +#include <asm-generic/bug.h> #endif
include/asm-i386/bug.h +3 -13
@@ -9,7 +9,7 @@* undefined" opcode for parsing in the trap handler. */ -#if 1 /* Set to zero for a slightly smaller kernel */ +#ifdef CONFIG_DEBUG_BUGVERBOSE /* Set to zero for a slightly smaller kernel */ #define BUG () \ __asm__ __volatile__( "ud2\n" \ "\t.word %c0\n" \
@@ -19,17 +19,7 @@#define BUG () __asm__ __volatile__("ud2\n")#endif -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-ia64/bug.h +3 -10
@@ -8,15 +8,8 @@#endif #define BUG () do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); ia64_abort(); } while (0) -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) - -#define PAGE_BUG (page) do { BUG(); } while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +/* should this BUG should be made generic? */ +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-m68k/bug.h +2 -15
@@ -21,20 +21,7 @@ } while (0)#endif -#define BUG_ON (condition) do { \ - if (unlikely((condition)!=0)) \ - BUG(); \ -} while(0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-m68knommu/bug.h +1 -21
@@ -1,24 +1,4 @@#ifndef _M68KNOMMU_BUG_H#define _M68KNOMMU_BUG_H - -#define BUG () do { \ - printk("%s(%d): kernel BUG!\n", __FILE__, __LINE__); \ -} while (0) - -#define BUG_ON (condition) do { \ - if (unlikely((condition)!=0)) \ - BUG(); \ -} while(0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) - +#include <asm-generic/bug.h> #endif
include/asm-mips/bug.h +2 -8
@@ -7,14 +7,8 @@do { \ __asm__ __volatile__("break %0" : :"i" (BRK_BUG )); \ } while (0) -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) -#define PAGE_BUG (page) do { BUG(); } while (0) -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-parisc/bug.h +1 -26
@@ -1,29 +1,4 @@#ifndef _PARISC_BUG_H#define _PARISC_BUG_H - -/* -* Tell the user there is some problem. -*/ -#define BUG () do { \ - extern void dump_stack(void); \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ - dump_stack(); \ -} while (0) - -#define BUG_ON (condition) do { \ - if (unlikely((condition)!=0)) \ - BUG(); \ -} while(0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) - +#include <asm-generic/bug.h> #endif
include/asm-ppc/bug.h +5 -2
@@ -35,8 +35,6 @@ } \ } while (0) -#define PAGE_BUG (page) BUG() -#define WARN_ON (x) do { \ if (!__builtin_constant_p(x) || (x)) { \ __asm__ __volatile__( \
@@ -49,4 +47,9 @@ } \ } while (0) +#define HAVE_ARCH_BUG +#define HAVE_ARCH_BUG_ON +#define HAVE_ARCH_WARN_ON +#include <asm-generic/bug.h> +#endif
include/asm-ppc64/bug.h +6 -2
@@ -43,8 +43,6 @@ "i" (__FUNCTION__)); \ } while (0) -#define PAGE_BUG (page) do { BUG(); } while (0) -#define WARN_ON (x) do { \ __asm__ __volatile__( \ "1: tdnei %0,0\n" \
@@ -56,4 +54,10 @@ } while (0)#endif + +#define HAVE_ARCH_BUG +#define HAVE_ARCH_BUG_ON +#define HAVE_ARCH_WARN_ON +#include <asm-generic/bug.h> +#endif
include/asm-s390/bug.h +3 -16
@@ -6,22 +6,9 @@#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) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ } while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> +#endif
include/asm-sh/bug.h +2 -15
@@ -11,20 +11,7 @@ asmvolatile ("nop" ); \ } while (0) -#define BUG_ON (condition) do { \ - if (unlikely((condition)!=0)) \ - BUG(); \ -} while(0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-sparc/bug.h +2 -15
@@ -25,20 +25,7 @@#define BUG () __bug_trap()#endif -#define BUG_ON (condition) do { \ - if (unlikely((condition)!=0)) \ - BUG(); \ -} while(0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-sparc64/bug.h +2 -17
@@ -1,5 +1,3 @@ -/* $Id$ */ -#ifndef _SPARC64_BUG_H#define _SPARC64_BUG_H
@@ -15,20 +13,7 @@#define BUG () __builtin_trap()#endif -#define BUG_ON (condition) do { \ - if (unlikely((condition)!=0)) \ - BUG(); \ -} while(0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif
include/asm-um/bug.h +1 -27
@@ -1,30 +1,4 @@#ifndef __UM_BUG_H#define __UM_BUG_H - -#ifndef __ASSEMBLY__ - -#define BUG () do { \ - panic("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ -} while (0) - -#define BUG_ON (condition) do { \ - if (unlikely((condition)!=0)) \ - BUG(); \ -} while(0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) - -extern int foo; - -#endif - +#include <asm-generic/bug.h> #endif
include/asm-v850/bug.h +2 -10
@@ -16,15 +16,7 @@extern void __bug (void ) __attribute__ ((noreturn));#define BUG () __bug() -#define PAGE_BUG (page) __bug() - -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#define HAVE_ARCH_BUG +#include <asm-generic/bug.h> #endif /* __V850_BUG_H__ */
include/asm-x86_64/bug.h +9 -16
@@ -6,27 +6,20 @@/* * Tell the user there is some problem. The exception handler decodes * this frame. -*/ -struct bug_frame { -unsigned char ud2[2 ]; +*/ +struct bug_frame { +unsigned char ud2[2 ];/* should use 32bit offset instead, but the assembler doesn't -like it */ -char *filename; -unsigned short line; -} __attribute__((packed)); +like it */ +char *filename; +unsigned short line; +} __attribute__((packed)); +#define HAVE_ARCH_BUG #define BUG () \ asm volatile("ud2 ; .quad %c1 ; .short %c0" :: \ "i"(__LINE__), "i" (__stringify(KBUILD_BASENAME))) -#define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0) -#define PAGE_BUG (page) BUG()void out_of_line_bug (void ); - -#define WARN_ON (condition) do { \ - if (unlikely((condition)!=0)) { \ - printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ - dump_stack(); \ - } \ -} while (0) +#include <asm-generic/bug.h> #endif
include/asm-generic/bug.h +34 -0
@@ -0,0 +1,34 @@ +#ifndef _ASM_GENERIC_BUG_H +#define _ASM_GENERIC_BUG_H + +#include <linux/compiler.h> +#include <linux/config.h> + +#ifndef HAVE_ARCH_BUG +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ + 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 + +#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__); \ + dump_stack(); \ + } \ +} while (0) +#endif + +#endif
Signature · 1 line
Mathematics is the supreme nostalgia of our time.