945048ca36
The commit "alpha: teach the compiler that BUG doesn't return"
(ed6b9b97f4
) moved the asm code into inline
function which takes __FILE__ and __LINE__ as arguments. This violates
asm constrains there ("i" - an immediate operand with constant value), so
that compile may result in warning or error, depending on compiler
version.
Just adding an infinite loop to the BUG() is sufficient.
Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
23 lines
507 B
C
23 lines
507 B
C
#ifndef _ALPHA_BUG_H
|
|
#define _ALPHA_BUG_H
|
|
|
|
#include <linux/linkage.h>
|
|
|
|
#ifdef CONFIG_BUG
|
|
#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__)); \
|
|
for ( ; ; ); }
|
|
|
|
#define HAVE_ARCH_BUG
|
|
#endif
|
|
|
|
#include <asm-generic/bug.h>
|
|
|
|
#endif
|