Thanks to Stephen Rothwell for the inspiration,
Rusty.
-- Anyone who quotes me in their sig is an idiot. -- Rusty Russell.diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/current-dontdiff --minimal linux-2.5.15/include/asm-i386/page.h working-2.5.15-rcu/include/asm-i386/page.h --- linux-2.5.15/include/asm-i386/page.h Wed May 15 19:53:25 2002 +++ working-2.5.15-rcu/include/asm-i386/page.h Thu May 16 17:34:47 2002 @@ -96,11 +96,16 @@ */ #if 1 /* Set to zero for a slightly smaller kernel */ +#define __STRINGIZE2(x) #x +#define __STRINGIZE(x) __STRINGIZE2(x) #define BUG() \ __asm__ __volatile__( "ud2\n" \ "\t.word %c0\n" \ "\t.long %c1\n" \ - : : "i" (__LINE__), "i" (__FILE__)) + "\t.long %c2\n" \ + : : "i" (__LINE__), \ + "i" (__STRINGIZE(KBUILD_BASENAME)), \ + "i" (__FUNCTION__)) #else #define BUG() __asm__ __volatile__("ud2\n") #endif diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/current-dontdiff --minimal linux-2.5.15/arch/i386/kernel/traps.c working-2.5.15-rcu/arch/i386/kernel/traps.c --- linux-2.5.15/arch/i386/kernel/traps.c Tue Apr 23 11:39:32 2002 +++ working-2.5.15-rcu/arch/i386/kernel/traps.c Thu May 16 17:43:28 2002 @@ -245,7 +245,7 @@ { unsigned short ud2; unsigned short line; - char *file; + char *object, *func; char c; unsigned long eip; @@ -262,11 +262,14 @@ goto no_bug; if (__get_user(line, (unsigned short *)(eip + 2))) goto bug; - if (__get_user(file, (char **)(eip + 4)) || - (unsigned long)file < PAGE_OFFSET || __get_user(c, file)) - file = "<bad filename>"; + if (__get_user(object, (char **)(eip + 4)) || + (unsigned long)object < PAGE_OFFSET || __get_user(c, object)) + object = "<bad objectname>"; + if (__get_user(func, (char **)(eip + 8)) || + (unsigned long)func < PAGE_OFFSET || __get_user(c, func)) + func = "<bad funcname>"; - printk("kernel BUG at %s:%d!\n", file, line); + printk("kernel BUG at %s:%s:%d!\n", object, func, line); no_bug: return; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/