patch-2.2.0-pre4 linux/scripts/ksymoops-0.6/patches/ppc
Next file: linux/scripts/ksymoops-0.6/re.c
Previous file: linux/scripts/ksymoops-0.6/patches/mips
Back to the patch index
Back to the overall index
- Lines: 68
- Date:
Mon Nov 2 07:30:23 1998
- Orig file:
v2.2.0-pre3/linux/scripts/ksymoops-0.6/patches/ppc
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.2.0-pre3/linux/scripts/ksymoops-0.6/patches/ppc linux/scripts/ksymoops-0.6/patches/ppc
@@ -0,0 +1,67 @@
+--- linux/arch/ppc/kernel/process.c 1998/10/11 17:47:23 1.67
++++ linux/arch/ppc/kernel/process.c 1998/11/02 03:11:28
+@@ -196,6 +198,19 @@
+ _enable_interrupts(s);
+ }
+
++void instruction_dump (unsigned long *pc)
++{
++ int i;
++
++ if((((unsigned long) pc) & 3))
++ return;
++
++ printk("Instruction DUMP:");
++ for(i = -3; i < 6; i++)
++ printk("%c%08lx%c",i?' ':'<',pc[i],i?' ':'>');
++ printk("\n");
++}
++
+ void show_regs(struct pt_regs * regs)
+ {
+ int i;
+--- linux/arch/ppc/kernel/traps.c 1998/05/05 19:18:53 1.21
++++ linux/arch/ppc/kernel/traps.c 1998/11/02 03:11:36
+@@ -79,6 +79,7 @@
+ debugger(regs);
+ #endif
+ print_backtrace((unsigned long *)regs->gpr[1]);
++ instruction_dump((unsigned long *)regs->nip);
+ panic("Exception in kernel pc %lx signal %d",regs->nip,signr);
+ }
+ force_sig(signr, current);
+@@ -126,6 +127,7 @@
+ debugger(regs);
+ #endif
+ print_backtrace((unsigned long *)regs->gpr[1]);
++ instruction_dump((unsigned long *)regs->nip);
+ panic("machine check");
+ }
+ _exception(SIGSEGV, regs);
+@@ -219,6 +221,7 @@
+ #endif
+ show_regs(regs);
+ print_backtrace((unsigned long *)regs->gpr[1]);
++ instruction_dump((unsigned long *)regs->nip);
+ panic("kernel stack overflow");
+ }
+
+--- linux/arch/ppc/mm/fault.c 1998/10/06 03:13:19 1.28
++++ linux/arch/ppc/mm/fault.c 1998/11/02 03:11:36
+@@ -89,6 +89,7 @@
+ printk("page fault in interrupt handler, addr=%lx\n",
+ address);
+ show_regs(regs);
++ instruction_dump((unsigned long *)regs->nip);
+ #if defined(CONFIG_XMON) || defined(CONFIG_KGDB)
+ if (debugger_kernel_faults)
+ debugger(regs);
+@@ -174,6 +175,7 @@
+ /* kernel has accessed a bad area */
+ show_regs(regs);
+ print_backtrace( (unsigned long *)regs->gpr[1] );
++ instruction_dump((unsigned long *)regs->nip);
+ #if defined(CONFIG_XMON) || defined(CONFIG_KGDB)
+ if (debugger_kernel_faults)
+ debugger(regs);
+
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov