patch-2.4.20 linux-2.4.20/arch/m68k/kernel/traps.c
Next file: linux-2.4.20/arch/m68k/mac/config.c
Previous file: linux-2.4.20/arch/m68k/kernel/setup.c
Back to the patch index
Back to the overall index
- Lines: 69
- Date:
Thu Nov 28 15:53:09 2002
- Orig file:
linux-2.4.19/arch/m68k/kernel/traps.c
- Orig date:
Fri Aug 2 17:39:43 2002
diff -urN linux-2.4.19/arch/m68k/kernel/traps.c linux-2.4.20/arch/m68k/kernel/traps.c
@@ -816,8 +816,9 @@
static inline int kernel_text_address(unsigned long addr)
{
+#ifdef CONFIG_MODULES
struct module *mod;
- int retval = 0;
+#endif
extern char _stext, _etext;
if (addr >= (unsigned long) &_stext &&
@@ -829,14 +830,12 @@
/* mod_bound tests for addr being inside the vmalloc'ed
* module area. Of course it'd be better to test only
* for the .text subset... */
- if (mod_bound(addr, 0, mod)) {
- retval = 1;
- break;
- }
+ if (mod_bound(addr, 0, mod))
+ return 1;
}
#endif
- return retval;
+ return 0;
}
void show_trace(unsigned long *stack)
@@ -874,11 +873,14 @@
show_trace((unsigned long *)tsk->thread.esp0);
}
-static void dump_stack(struct frame *fp)
+static void show_stack(struct frame *fp)
{
unsigned long *stack, *endstack, addr;
int i;
+ if (fp == NULL)
+ fp = (struct frame *)&fp;
+
addr = (unsigned long)&fp->un;
printk("Frame format=%X ", fp->ptregs.format);
switch (fp->ptregs.format) {
@@ -952,6 +954,14 @@
printk ("\n");
}
+/*
+ * The architecture-independent backtrace generator
+ */
+void dump_stack(void)
+{
+ show_stack(0);
+}
+
void bad_super_trap (struct frame *fp)
{
console_verbose();
@@ -1122,7 +1132,7 @@
printk("Process %s (pid: %d, stackpage=%08lx)\n",
current->comm, current->pid, PAGE_SIZE+(unsigned long)current);
- dump_stack((struct frame *)fp);
+ show_stack((struct frame *)fp);
do_exit(SIGSEGV);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)