Commit 945048ca authored by Ivan Kokshaysky's avatar Ivan Kokshaysky Committed by Linus Torvalds

alpha: fix the BUG() macro

The commit "alpha: teach the compiler that BUG doesn't return"
(ed6b9b97) 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: default avatarIvan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ee0c468b
...@@ -8,17 +8,12 @@ ...@@ -8,17 +8,12 @@
/* ??? Would be nice to use .gprel32 here, but we can't be sure that the /* ??? 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. */ function loaded the GP, so this could fail in modules. */
static inline void ATTRIB_NORET __BUG(const char *file, int line) #define BUG() { \
{ __asm__ __volatile__( \
__asm__ __volatile__( "call_pal %0 # bugchk\n\t" \
"call_pal %0 # bugchk\n\t" ".long %1\n\t.8byte %2" \
".long %1\n\t.8byte %2" : : "i"(PAL_bugchk), "i"(__LINE__), "i"(__FILE__)); \
: : "i" (PAL_bugchk), "i"(line), "i"(file)); for ( ; ; ); }
for ( ; ; )
;
}
#define BUG() __BUG(__FILE__, __LINE__)
#define HAVE_ARCH_BUG #define HAVE_ARCH_BUG
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment