[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20090127084513.GC15452@jurassic.park.msu.ru>
Date: Tue, 27 Jan 2009 11:45:13 +0300
From: Ivan Kokshaysky <ink@...assic.park.msu.ru>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: Richard Henderson <rth@...ddle.net>, linux-kernel@...r.kernel.org
Subject: [PATCH] alpha: fix the BUG() macro
The commit "alpha: teach the compiler that BUG doesn't return"
(ed6b9b97f42c091630335bfb71a2931e6f86388b) 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@...assic.park.msu.ru>
---
arch/alpha/include/asm/bug.h | 17 ++++++-----------
1 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/arch/alpha/include/asm/bug.h b/arch/alpha/include/asm/bug.h
index 695a5ee..7b85b7c 100644
--- a/arch/alpha/include/asm/bug.h
+++ b/arch/alpha/include/asm/bug.h
@@ -8,17 +8,12 @@
/* ??? 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. */
-static inline void ATTRIB_NORET __BUG(const char *file, int line)
-{
- __asm__ __volatile__(
- "call_pal %0 # bugchk\n\t"
- ".long %1\n\t.8byte %2"
- : : "i" (PAL_bugchk), "i"(line), "i"(file));
- for ( ; ; )
- ;
-}
-
-#define BUG() __BUG(__FILE__, __LINE__)
+#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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists