Re: [PATCH] Fix BUG macro

Rusty Russell (rusty@rustcorp.com.au)
Fri, 17 May 2002 12:25:05 +1000


In message <20020516162841.PYWL19243.tomts15-srv.bellnexxia.net@there> you writ
e:
> Minor nit : any reason why you don't use __stringify from
> include/linux/stringify.h ?

Ignorance. Mea culpa. Linus, please apply.

diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.15/arch/i386/kernel/traps.c working-2.5.15-bug/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-bug/arch/i386/kernel/traps.c Fri May 17 12:23:06 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;
diff -urN -I \$.*\$ --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal linux-2.5.15/include/asm-i386/page.h working-2.5.15-bug/include/asm-i386/page.h
--- linux-2.5.15/include/asm-i386/page.h Mon May 6 16:00:10 2002
+++ working-2.5.15-bug/include/asm-i386/page.h Fri May 17 12:23:59 2002
@@ -10,6 +10,7 @@
#ifndef __ASSEMBLY__

#include <linux/config.h>
+#include <linux/stringify.h>

#ifdef CONFIG_X86_USE_3DNOW

@@ -100,7 +101,10 @@
__asm__ __volatile__( "ud2\n" \
"\t.word %c0\n" \
"\t.long %c1\n" \
- : : "i" (__LINE__), "i" (__FILE__))
+ "\t.long %c2\n" \
+ : : "i" (__LINE__), \
+ "i" (__stringify(KBUILD_BASENAME)), \
+ "i" (__FUNCTION__))
#else
#define BUG() __asm__ __volatile__("ud2\n")
#endif

--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
-
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/