Use __builtin_trap instead of an inline assembly in the BUG() macro.  That way
the compiler knows that BUG() won't return.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
 #include <linux/kernel.h>
 
 #ifdef CONFIG_BUG
+
 #define BUG() do { \
-        printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
-        __asm__ __volatile__(".long 0"); \
+       printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
+       __builtin_trap(); \
 } while (0)
 
 #define HAVE_ARCH_BUG