[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XEN] BUG() places console in sync mode.
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxxxx # Node ID 1d17ddd9e45d25e1b5fc21e558a4973b70572334 # Parent 25c6ea6d4024c86c2dfd54ef9f44c793e7346ee8 [XEN] BUG() places console in sync mode. Also move the BUG code out of line. Original patch from Jimi Xenidis. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- xen/drivers/char/console.c | 9 +++++++++ xen/include/xen/lib.h | 18 +++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff -r 25c6ea6d4024 -r 1d17ddd9e45d xen/drivers/char/console.c --- a/xen/drivers/char/console.c Wed Jun 28 16:05:27 2006 +0100 +++ b/xen/drivers/char/console.c Wed Jun 28 16:15:36 2006 +0100 @@ -741,6 +741,15 @@ void panic(const char *fmt, ...) machine_restart(0); } +void __bug(char *file, int line) +{ + console_start_sync(); + debugtrace_dump(); + printk("BUG at %s:%d\n", file, line); + FORCE_CRASH(); + for ( ; ; ) ; +} + /* * Local variables: * mode: C diff -r 25c6ea6d4024 -r 1d17ddd9e45d xen/include/xen/lib.h --- a/xen/include/xen/lib.h Wed Jun 28 16:05:27 2006 +0100 +++ b/xen/include/xen/lib.h Wed Jun 28 16:15:36 2006 +0100 @@ -8,19 +8,23 @@ #include <xen/xmalloc.h> #include <xen/string.h> -#define BUG() do { \ - debugtrace_dump(); \ - printk("BUG at %s:%d\n", __FILE__, __LINE__); \ - FORCE_CRASH(); \ -} while ( 0 ) - +extern void __bug(char *file, int line) __attribute__((noreturn)); +#define BUG() __bug(__FILE__, __LINE__) #define BUG_ON(_p) do { if (_p) BUG(); } while ( 0 ) /* Force a compilation error if condition is true */ #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2 * !!(condition)])) #ifndef NDEBUG -#define ASSERT(_p) { if ( !(_p) ) { printk("Assertion '%s' failed, line %d, file %s\n", #_p , __LINE__, __FILE__); BUG(); } } +#define ASSERT(_p) \ + do { \ + if ( !(_p) ) \ + { \ + printk("Assertion '%s' failed, line %d, file %s\n", #_p , \ + __LINE__, __FILE__); \ + BUG(); \ + } \ + } while ( 0 ) #else #define ASSERT(_p) ((void)0) #endif _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |