Re: [PATCH] Alpha print the symbol name in Oops

From: Aneesh Kumar
Date: Thu Jul 08 2004 - 04:21:16 EST


On Thu, 8 Jul 2004 14:46:17 +0530, Aneesh Kumar <aneesh.kumar@xxxxxxxxx> wrote:
>
>
> On Thu, 8 Jul 2004 00:15:47 -0700, Andrew Morton <akpm@xxxxxxxx> wrote:
> > Aneesh Kumar <aneesh.kumar@xxxxxxxxx> wrote:
> > >
> > > + printk("[<%lx>]", tmp);
> > > + print_symbol(" %s\n", tmp);
> >
> > print_symbol() does nothing at all if CONFIG_KALLSYMS=n. You probably want:
> >
> > printk("[<%lx>]", tmp);
> > print_symbol(" %s", tmp);
> > printk("\n");
> >
>
> Patch attached.
>

Sorry I attached a wrong patch of the CI project :)

-aneesh
--- arch/alpha/kernel/traps.c 2004-07-08 10:55:36.000000000 +0530
+++ /tmp/traps.c 2004-07-08 14:45:17.000000000 +0530
@@ -14,10 +14,11 @@
#include <linux/tty.h>
#include <linux/delay.h>
#include <linux/smp_lock.h>
#include <linux/module.h>
#include <linux/init.h>
+#include <linux/kallsyms.h>

#include <asm/gentrap.h>
#include <asm/uaccess.h>
#include <asm/unaligned.h>
#include <asm/sysinfo.h>
@@ -117,20 +118,22 @@

static void
dik_show_trace(unsigned long *sp)
{
long i = 0;
- printk("Trace:");
+ printk("Trace:\n");
while (0x1ff8 & (unsigned long) sp) {
extern char _stext[], _etext[];
unsigned long tmp = *sp;
sp++;
if (tmp < (unsigned long) &_stext)
continue;
if (tmp >= (unsigned long) &_etext)
continue;
- printk("%lx%c", tmp, ' ');
+ printk("[<%lx>]", tmp);
+ print_symbol(" %s", tmp);
+ printk("\n");
if (i > 40) {
printk(" ...");
break;
}
}