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

The change of get_signal_to_deliver() is followed.

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

 25-akpm/arch/mips/kernel/signal.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff -puN arch/mips/kernel/signal.c~mips-fixed-do_signal-in-arch-mips-kernel-signalc arch/mips/kernel/signal.c
--- 25/arch/mips/kernel/signal.c~mips-fixed-do_signal-in-arch-mips-kernel-signalc	Tue Sep 14 18:15:54 2004
+++ 25-akpm/arch/mips/kernel/signal.c	Tue Sep 14 18:15:54 2004
@@ -480,10 +480,8 @@ extern void setup_rt_frame_n32(struct k_
 	struct pt_regs *regs, int signr, sigset_t *set, siginfo_t *info);
 
 static inline void handle_signal(unsigned long sig, siginfo_t *info,
-	sigset_t *oldset, struct pt_regs *regs)
+	struct k_sigaction *ka, sigset_t *oldset, struct pt_regs *regs)
 {
-	struct k_sigaction *ka = &current->sighand->action[sig-1];
-
 	switch(regs->regs[0]) {
 	case ERESTART_RESTARTBLOCK:
 	case ERESTARTNOHAND:
@@ -535,6 +533,7 @@ extern int do_irix_signal(sigset_t *olds
 
 asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs)
 {
+	struct k_sigaction ka;
 	siginfo_t info;
 	int signr;
 
@@ -560,9 +559,9 @@ asmlinkage int do_signal(sigset_t *oldse
 	if (!oldset)
 		oldset = &current->blocked;
 
-	signr = get_signal_to_deliver(&info, regs, NULL);
+	signr = get_signal_to_deliver(&info, &ka, regs, NULL);
 	if (signr > 0) {
-		handle_signal(signr, &info, oldset, regs);
+		handle_signal(signr, &info, &ka, oldset, regs);
 		return 1;
 	}
 
_
