
From: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>

This patch had fixed LTT for MIPS.

Signed-off-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/mips/kernel/traps.c     |   15 ++++++++-------
 25-akpm/arch/mips/kernel/unaligned.c |    2 +-
 25-akpm/arch/mips/mm/fault.c         |    2 +-
 25-akpm/include/asm-mips/mipsregs.h  |    1 +
 4 files changed, 11 insertions(+), 9 deletions(-)

diff -puN arch/mips/kernel/traps.c~ltt-architecture-events-mips-fix arch/mips/kernel/traps.c
--- 25/arch/mips/kernel/traps.c~ltt-architecture-events-mips-fix	2005-01-25 21:48:37.471734936 -0800
+++ 25-akpm/arch/mips/kernel/traps.c	2005-01-25 21:48:37.480733568 -0800
@@ -20,6 +20,7 @@
 #include <linux/smp.h>
 #include <linux/smp_lock.h>
 #include <linux/spinlock.h>
+#include <linux/unistd.h>
 #include <linux/kallsyms.h>
 
 #include <asm/bootinfo.h>
@@ -226,7 +227,7 @@ void show_regs(struct pt_regs *regs)
 
 	printk("Cause : %08x\n", cause);
 
-	cause = (cause & CAUSEF_EXCCODE) >> CAUSEB_EXCCODE;
+	cause = CAUSE_EXCCODE(cause);
 	if (1 <= cause && cause <= 5)
 		printk("BadVA : %0*lx\n", field, regs->cp0_badvaddr);
 
@@ -502,7 +503,7 @@ asmlinkage void do_ov(struct pt_regs *re
  */
 asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31)
 {
-	ltt_ev_trap_entry(CAUSE_EXCCODE(regs), CAUSE_EPC(regs));
+	ltt_ev_trap_entry(CAUSE_EXCCODE(regs->cp0_cause), regs->cp0_epc);
 	if (fcr31 & FPU_CSR_UNI_X) {
 		int sig;
 
@@ -642,7 +643,7 @@ asmlinkage void do_cpu(struct pt_regs *r
 
 	die_if_kernel("do_cpu invoked from kernel context!", regs);
 
-	ltt_ev_trap_entry(CAUSE_EXCCODE(regs), CAUSE_EPC(regs));
+	ltt_ev_trap_entry(CAUSE_EXCCODE(regs->cp0_cause), regs->cp0_epc);
 
 	cpid = (regs->cp0_cause >> CAUSEB_CE) & 3;
 
@@ -1091,8 +1092,8 @@ asmlinkage void trace_real_syscall_entry
 	if (!user_mode(regs))
 		goto trace_syscall_end;
 
-	if (trace_get_config(&use_depth, &use_bounds, &seek_depth,
-			(void*)&lower_bound, (void*)&upper_bound) < 0)
+	if (ltt_get_trace_config(&use_depth, &use_bounds, &seek_depth,
+				 (void*)&lower_bound, (void*)&upper_bound) < 0)
 		goto trace_syscall_end;
 
 	/* Heuristic that might work:
@@ -1124,12 +1125,12 @@ asmlinkage void trace_real_syscall_entry
 	}
 
 trace_syscall_end:
-	trace_event(LTT_EV_SYSCALL_ENTRY, &trace_syscall_event);
+	ltt_log_event(LTT_EV_SYSCALL_ENTRY, &trace_syscall_event);
 }
 
 asmlinkage void trace_real_syscall_exit(void)
 {
-        trace_event(LTT_EV_SYSCALL_EXIT, NULL);
+        ltt_log_event(LTT_EV_SYSCALL_EXIT, NULL);
 }
 
 #endif /* (CONFIG_LTT) */
diff -puN arch/mips/kernel/unaligned.c~ltt-architecture-events-mips-fix arch/mips/kernel/unaligned.c
--- 25/arch/mips/kernel/unaligned.c~ltt-architecture-events-mips-fix	2005-01-25 21:48:37.473734632 -0800
+++ 25-akpm/arch/mips/kernel/unaligned.c	2005-01-25 21:48:37.481733416 -0800
@@ -498,7 +498,7 @@ asmlinkage void do_ade(struct pt_regs *r
 	mm_segment_t seg;
 	unsigned long pc;
 
-	ltt_ev_trap_entry(CAUSE_EXCCODE(regs), CAUSE_EPC(regs));
+	ltt_ev_trap_entry(CAUSE_EXCCODE(regs->cp0_cause), regs->cp0_epc);
 
 	/*
 	 * Address errors may be deliberately induced by the FPU emulator to
diff -puN arch/mips/mm/fault.c~ltt-architecture-events-mips-fix arch/mips/mm/fault.c
--- 25/arch/mips/mm/fault.c~ltt-architecture-events-mips-fix	2005-01-25 21:48:37.474734480 -0800
+++ 25-akpm/arch/mips/mm/fault.c	2005-01-25 21:48:37.481733416 -0800
@@ -61,7 +61,7 @@ asmlinkage void do_page_fault(struct pt_
 	if (unlikely(address >= VMALLOC_START))
 		goto vmalloc_fault;
 
-	ltt_ev_trap_entry(CAUSE_EXCCODE(regs), CAUSE_EPC(regs));
+	ltt_ev_trap_entry(CAUSE_EXCCODE(regs->cp0_cause), regs->cp0_epc);
 
 	/*
 	 * If we're in an interrupt or have no user
diff -puN include/asm-mips/mipsregs.h~ltt-architecture-events-mips-fix include/asm-mips/mipsregs.h
--- 25/include/asm-mips/mipsregs.h~ltt-architecture-events-mips-fix	2005-01-25 21:48:37.476734176 -0800
+++ 25-akpm/include/asm-mips/mipsregs.h	2005-01-25 21:48:37.482733264 -0800
@@ -369,6 +369,7 @@
  */
 #define  CAUSEB_EXCCODE		2
 #define  CAUSEF_EXCCODE		(_ULCAST_(31)  <<  2)
+#define  CAUSE_EXCCODE(cause)	(((cause) & CAUSEF_EXCCODE) >> CAUSEB_EXCCODE)
 #define  CAUSEB_IP		8
 #define  CAUSEF_IP		(_ULCAST_(255) <<  8)
 #define  CAUSEB_IP0		8
_
