2.5.43-bug
PATCH 1/1 2.5.43-bug
This patch appears not to be in 2.5.43, but applies cleanly.
This patch moves BUG() and PAGE_BUG() from asm/page.h into asm/bug.h.
We also fix up linux/dcache.h, which included asm/page.h for the sole purpose of getting the BUG() definition.
Since linux/kernel.h makes use of BUG(), asm/bug.h is included there as well.
Please review. Thanks.
include/asm-alpha/bug.h | 14 ++++++++++++++ include/asm-alpha/page.h | 8 -------- include/asm-arm/bug.h | 21 +++++++++++++++++++++ include/asm-arm/page.h | 15 --------------- include/asm-cris/bug.h | 12 ++++++++++++ include/asm-cris/page.h | 12 ------------ include/asm-i386/bug.h | 27 +++++++++++++++++++++++++++ include/asm-i386/page.h | 21 --------------------- include/asm-ia64/bug.h | 7 +++++++ include/asm-ia64/page.h | 8 -------- include/asm-m68k/bug.h | 28 ++++++++++++++++++++++++++++ include/asm-m68k/page.h | 22 ---------------------- include/asm-mips/bug.h | 8 ++++++++ include/asm-mips/page.h | 2 -- include/asm-mips64/bug.h | 7 +++++++ include/asm-mips64/page.h | 2 -- include/asm-parisc/bug.h | 18 ++++++++++++++++++ include/asm-parisc/page.h | 14 -------------- include/asm-ppc/bug.h | 20 ++++++++++++++++++++ include/asm-ppc/page.h | 13 ------------- include/asm-s390/bug.h | 13 +++++++++++++ include/asm-s390/page.h | 9 --------- include/asm-s390x/bug.h | 13 +++++++++++++ include/asm-s390x/page.h | 9 --------- include/asm-sh/bug.h | 16 ++++++++++++++++ include/asm-sh/page.h | 12 ------------ include/asm-sparc/bug.h | 25 +++++++++++++++++++++++++ include/asm-sparc/page.h | 19 ------------------- include/asm-sparc64/bug.h | 17 +++++++++++++++++ include/asm-sparc64/page.h | 11 ----------- include/linux/dcache.h | 2 +- include/linux/kernel.h | 1 + 32 files changed, 248 insertions, 178 deletions
include/asm-alpha/bug.h +14 -0
@@ -0,0 +1,14 @@ +#ifndef _ALPHA_BUG_H +#define _ALPHA_BUG_H + +#include <asm/pal.h> + +/* ??? Would be nice to use .gprel32 here, but we can't be sure that the +function loaded the GP, so this could fail in modules. */ +#define BUG () \ + __asm__ __volatile__("call_pal %0 # bugchk\n\t"".long %1\n\t.8byte %2" \ + : : "i" (PAL_bugchk), "i"(__LINE__), "i"(__FILE__)) + +#define PAGE_BUG (page) BUG() + +#endif
include/asm-alpha/page.h +0 -8
@@ -58,14 +58,6 @@#define __pgprot (x) (x)#endif /* STRICT_MM_TYPECHECKS */ - -/* ??? Would be nice to use .gprel32 here, but we can't be sure that the -function loaded the GP, so this could fail in modules. */ -#define BUG () \ - __asm__ __volatile__("call_pal %0 # bugchk\n\t"".long %1\n\t.8byte %2" \ - : : "i" (PAL_bugchk), "i"(__LINE__), "i"(__FILE__)) - -#define PAGE_BUG (page) BUG()/* Pure 2^n version of get_order */ extern __inline__int get_order (unsigned long size)
include/asm-arm/bug.h +20 -0
@@ -0,0 +1,20 @@ +#ifndef _ASMARM_BUG_H +#define _ASMARM_BUG_H + +#include <linux/config.h> + +#ifdef CONFIG_DEBUG_BUGVERBOSE +extern 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 +
+#endif
include/asm-arm/page.h +0 -15
@@ -160,21 +160,6 @@ #ifdef __KERNEL__ #ifndef __ASSEMBLY__ -#ifdef CONFIG_DEBUG_BUGVERBOSE -extern 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 - /* Pure 2^n version of get_order */ static inline int get_order(unsigned long size) {
include/asm-cris/bug.h +12 -0
@@ -0,0 +1,12 @@ +#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) + +#endif
include/asm-cris/page.h +0 -12
@@ -69,18 +69,6 @@#else #define PAGE_OFFSET KSEG_C/* kseg_c is mapped to physical ram */ #endif - -#ifndef __ASSEMBLY__ - -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ -} while (0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0) - -#endif /* __ASSEMBLY__ */ /* macros to convert between really physical and virtual addresses * by stripping a selected bit, we can convert between KSEG_x and 0x40000000 where
include/asm-i386/bug.h +27 -0
@@ -0,0 +1,27 @@ +#ifndef _I386_BUG_H +#define _I386_BUG_H + +#include <linux/config.h> + +/* +* Tell the user there is some problem. Beep too, so we can +* see^H^H^Hhear bugs in early bootup as well! +* The offending file and line are encoded after the "officially +* undefined" opcode for parsing in the trap handler. +*/ + +#if 1 /* Set to zero for a slightly smaller kernel */ +#define BUG () \ + __asm__ __volatile__( "ud2\n" \ + "\t.word %c0\n" \ + "\t.long %c1\n" \ + : : "i" (__LINE__), "i" (__FILE__)) +#else +#define BUG () __asm__ __volatile__("ud2\n") +#endif + +#define PAGE_BUG (page) do { \ + BUG(); \ +} while (0) + +#endif
include/asm-i386/page.h +0 -21
@@ -98,27 +98,6 @@#define __VMALLOC_RESERVE (128 << 20)#ifndef __ASSEMBLY__ - -/* -* Tell the user there is some problem. Beep too, so we can -* see^H^H^Hhear bugs in early bootup as well! -* The offending file and line are encoded after the "officially -* undefined" opcode for parsing in the trap handler. -*/ - -#if 1 /* Set to zero for a slightly smaller kernel */ -#define BUG () \ - __asm__ __volatile__( "ud2\n" \ - "\t.word %c0\n" \ - "\t.long %c1\n" \ - : : "i" (__LINE__), "i" (__FILE__)) -#else -#define BUG () __asm__ __volatile__("ud2\n") -#endif - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0)/* Pure 2^n version of get_order */ static __inline__int get_order (unsigned long size)
include/asm-ia64/bug.h +7 -0
@@ -0,0 +1,7 @@ +#ifndef _ASM_IA64_BUG_H +#define _ASM_IA64_BUG_H + +#define BUG () do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); *(int *)0=0; } while (0) +#define PAGE_BUG (page) do { BUG(); } while (0) + +#endif
include/asm-ia64/page.h +0 -8
@@ -86,14 +86,6 @@ | (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT)))# define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)#endif - -#if (__GNUC__ >3 ) || (__GNUC__ ==3 && __GNUC_MINOR__ >=1 ) -# define ia64_abort () __builtin_trap() -#else -# define ia64_abort () (*(volatile int *) 0 = 0) -#endif -#define BUG () do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); ia64_abort(); } while (0) -#define PAGE_BUG (page) do { BUG(); } while (0)static __inline__int get_order (unsigned long size)
include/asm-m68k/bug.h +28 -0
@@ -0,0 +1,28 @@ +#ifndef _M68K_BUG_H +#define _M68K_BUG_H + +#include <linux/config.h> + +#ifdef CONFIG_DEBUG_BUGVERBOSE +#ifndef CONFIG_SUN3 +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ + asm volatile("illegal"); \ +} while (0) +#else +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ + panic("BUG!"); \ +} while (0) +#endif +#else +#define BUG () do { \ + asm volatile("illegal"); \ +} while (0) +#endif + +#define PAGE_BUG (page) do { \ + BUG(); \ +} while (0) + +#endif
include/asm-m68k/page.h +0 -22
@@ -176,28 +176,6 @@#define virt_addr_valid (kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)#define pfn_valid (pfn) virt_addr_valid(pfn_to_virt(pfn)) - -#ifdef CONFIG_DEBUG_BUGVERBOSE -#ifndef CONFIG_SUN3 -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ - asm volatile("illegal"); \ -} while (0) -#else -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ - panic("BUG!"); \ -} while (0) -#endif -#else -#define BUG () do { \ - asm volatile("illegal"); \ -} while (0) -#endif - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0)#endif /* __ASSEMBLY__ */
include/asm-mips/bug.h +8 -0
@@ -0,0 +1,8 @@ +/* $Id$ */ +#ifndef __ASM_BUG_H +#define __ASM_BUG_H + +#define BUG () do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); *(int *)0=0; } while (0) +#define PAGE_BUG (page) do { BUG(); } while (0) + +#endif
include/asm-mips/page.h +0 -2
@@ -20,8 +20,6 @@#ifndef _LANGUAGE_ASSEMBLY -#define BUG () do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); *(int *)0=0; } while (0) -#define PAGE_BUG (page) do { BUG(); } while (0)extern void (*_clear_page)(void * page);extern void (*_copy_page)(void * to,void * from);
include/asm-mips64/bug.h +7 -0
@@ -0,0 +1,7 @@ +#ifndef _ASM_BUG_H +#define _ASM_BUG_H + +#define BUG () do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); *(int *)0=0; } while (0) +#define PAGE_BUG (page) do { BUG(); } while (0) + +#endif
include/asm-mips64/page.h +0 -2
@@ -20,8 +20,6 @@#ifndef _LANGUAGE_ASSEMBLY -#define BUG () do { printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); *(int *)0=0; } while (0) -#define PAGE_BUG (page) do { BUG(); } while (0)extern void (*_clear_page)(void * page);extern void (*_copy_page)(void * to,void * from);
include/asm-parisc/bug.h +18 -0
@@ -0,0 +1,18 @@ +#ifndef _PARISC_BUG_H +#define _PARISC_BUG_H + +/* +* Tell the user there is some problem. Beep too, so we can +* see^H^H^Hhear bugs in early bootup as well! +* +* We don't beep yet. prumpf +*/ +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ +} while (0) + +#define PAGE_BUG (page) do { \ + BUG(); \ +} while (0) + +#endif
include/asm-parisc/page.h +0 -14
@@ -51,20 +51,6 @@/* to align the pointer to the (next) page boundary */ #define PAGE_ALIGN (addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK) - -/* -* Tell the user there is some problem. Beep too, so we can -* see^H^H^Hhear bugs in early bootup as well! -* -* We don't beep yet. prumpf -*/ -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ -} while (0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0)#define LINUX_GATEWAY_SPACE 0
include/asm-ppc/bug.h +20 -0
@@ -0,0 +1,20 @@ +#ifndef _PPC_BUG_H +#define _PPC_BUG_H + +#include <linux/config.h> +#include <asm/system.h> /* for xmon definition */ + +#ifdef CONFIG_XMON +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ + xmon(0); \ +} while (0) +#else +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ + __asm__ __volatile__(".long 0x0"); \ +} while (0) +#endif +#define PAGE_BUG (page) do { BUG(); } while (0) + +#endif
include/asm-ppc/page.h +0 -13
@@ -19,19 +19,6 @@#ifndef __ASSEMBLY__#include <asm/system.h> /* for xmon definition */ - -#ifdef CONFIG_XMON -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ - xmon(0); \ -} while (0) -#else -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ - __asm__ __volatile__(".long 0x0"); \ -} while (0) -#endif -#define PAGE_BUG (page) do { BUG(); } while (0)#define STRICT_MM_TYPECHECKS
include/asm-s390/bug.h +13 -0
@@ -0,0 +1,13 @@ +#ifndef _S390_BUG_H +#define _S390_BUG_H + +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ + __asm__ __volatile__(".word 0x0000"); \ +} while (0) + +#define PAGE_BUG (page) do { \ + BUG(); \ +} while (0) + +#endif
include/asm-s390/page.h +0 -9
@@ -61,15 +61,6 @@#define clear_user_page (page, vaddr, pg) clear_page(page)#define copy_user_page (to, from, vaddr, pg) copy_page(to, from) - -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ - __asm__ __volatile__(".word 0x0000"); \ -} while (0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0)/* Pure 2^n version of get_order */ extern __inline__int get_order (unsigned long size)
include/asm-s390x/bug.h +13 -0
@@ -0,0 +1,13 @@ +#ifndef _S390_BUG_H +#define _S390_BUG_H + +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ + __asm__ __volatile__(".long 0"); \ +} while (0) + +#define PAGE_BUG (page) do { \ + BUG(); \ +} while (0) + +#endif
include/asm-s390x/page.h +0 -9
@@ -59,15 +59,6 @@#define clear_user_page (page, vaddr, pg) clear_page(page)#define copy_user_page (to, from, vaddr, pg) copy_page(to, from) - -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ - __asm__ __volatile__(".long 0"); \ -} while (0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0)/* Pure 2^n version of get_order */ extern __inline__int get_order (unsigned long size)
include/asm-sh/bug.h +16 -0
@@ -0,0 +1,16 @@ +#ifndef __ASM_SH_BUG_H +#define __ASM_SH_BUG_H + +/* +* Tell the user there is some problem. +*/ +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ + asm volatile("nop"); \ +} while (0) + +#define PAGE_BUG (page) do { \ + BUG(); \ +} while (0) + +#endif
include/asm-sh/page.h +0 -12
@@ -89,18 +89,6 @@#define virt_to_page (kaddr) phys_to_page(__pa(kaddr))#ifndef __ASSEMBLY__ - -/* -* Tell the user there is some problem. -*/ -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ - asm volatile("nop"); \ -} while (0) - -#define PAGE_BUG (page) do { \ - BUG(); \ -} while (0)/* Pure 2^n version of get_order */ static __inline__int get_order (unsigned long size)
include/asm-sparc/bug.h +25 -0
@@ -0,0 +1,25 @@ +/* $Id$ */ +#ifndef _SPARC_BUG_H +#define _SPARC_BUG_H + +/* +* XXX I am hitting compiler bugs with __builtin_trap. This has +* hit me before and rusty was blaming his netfilter bugs on +* this so lets disable it. - Anton +*/ +#if 0 +/* We need the mb()'s so we don't trigger a compiler bug - Anton */ +#define BUG () do { \ + mb(); \ + __builtin_trap(); \ + mb(); \ +} while(0) +#else +#define BUG () do { \ + printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); *(int *)0=0; \ +} while (0) +#endif + +#define PAGE_BUG (page) BUG() + +#endif
include/asm-sparc/page.h +0 -19
@@ -29,25 +29,6 @@#ifndef __ASSEMBLY__ -/* -* XXX I am hitting compiler bugs with __builtin_trap. This has -* hit me before and rusty was blaming his netfilter bugs on -* this so lets disable it. - Anton -*/ -#if 0 -/* We need the mb()'s so we don't trigger a compiler bug - Anton */ -#define BUG () do { \ - mb(); \ - __builtin_trap(); \ - mb(); \ -} while(0) -#else -#define BUG () do { \ - printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); *(int *)0=0; \ -} while (0) -#endif - -#define PAGE_BUG (page) BUG()#define clear_page (page) memset((void *)(page), 0, PAGE_SIZE)#define copy_page (to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE)
include/asm-sparc64/bug.h +17 -0
@@ -0,0 +1,17 @@ +/* $Id$ */ + +#ifndef _SPARC64_BUG_H +#define _SPARC64_BUG_H + +#ifdef CONFIG_DEBUG_BUGVERBOSE +extern void do_BUG (const char *file,int line); +#define BUG () do { \ + do_BUG(__FILE__, __LINE__); \ + __builtin_trap(); \ +} while (0) +#else +#define BUG () __builtin_trap() +#endif + + +#endif
include/asm-sparc64/page.h +0 -11
@@ -20,17 +20,6 @@#ifndef __ASSEMBLY__ -#ifdef CONFIG_DEBUG_BUGVERBOSE -extern void do_BUG (const char *file,int line); -#define BUG () do { \ - do_BUG(__FILE__, __LINE__); \ - __builtin_trap(); \ -} while (0) -#else -#define BUG () __builtin_trap() -#endif - -#define PAGE_BUG (page) BUG()/* Sparc64 is slow at multiplication, we prefer to use some extra space. */ #define WANT_PAGE_VIRTUAL 1
include/linux/dcache.h +1 -1
@@ -7,7 +7,7 @@#include <linux/mount.h> #include <linux/list.h> #include <linux/spinlock.h> -#include <asm/page.h> /* for BUG() */ +#include <asm/bug.h> /* * linux/include/linux/dcache.h
include/linux/kernel.h +1 -0
@@ -199,6 +199,7 @@char _f[20 -2 *sizeof (long )-sizeof (int )];/* Padding: libc5 uses this.. */ }; +#include <asm/bug.h> #define BUG_ON (condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)extern void BUILD_BUG (void );