mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
				synced 2025-11-04 16:52:06 +10:00 
			
		
		
		
	With commit 63dc68a8cf, kernel can not
handle BUG() and BUG_ON() properly since get_user() returns false for
kernel code.  Use __get_user() to skip unnecessary access_ok().  This
patch also make BRK_BUG code encoded in the TNE instruction.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
		
	
			
		
			
				
	
	
		
			34 lines
		
	
	
		
			558 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			558 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef __ASM_BUG_H
 | 
						|
#define __ASM_BUG_H
 | 
						|
 | 
						|
#include <asm/sgidefs.h>
 | 
						|
 | 
						|
#ifdef CONFIG_BUG
 | 
						|
 | 
						|
#include <asm/break.h>
 | 
						|
 | 
						|
#define BUG()								\
 | 
						|
do {									\
 | 
						|
	__asm__ __volatile__("break %0" : : "i" (BRK_BUG));		\
 | 
						|
} while (0)
 | 
						|
 | 
						|
#define HAVE_ARCH_BUG
 | 
						|
 | 
						|
#if (_MIPS_ISA > _MIPS_ISA_MIPS1)
 | 
						|
 | 
						|
#define BUG_ON(condition)						\
 | 
						|
do {									\
 | 
						|
	__asm__ __volatile__("tne $0, %0, %1"				\
 | 
						|
			     : : "r" (condition), "i" (BRK_BUG));	\
 | 
						|
} while (0)
 | 
						|
 | 
						|
#define HAVE_ARCH_BUG_ON
 | 
						|
 | 
						|
#endif /* _MIPS_ISA > _MIPS_ISA_MIPS1 */
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#include <asm-generic/bug.h>
 | 
						|
 | 
						|
#endif /* __ASM_BUG_H */
 |