Now setup_frame and variants return int. Here is a patch for remaining bits. Index: arch/mips/kernel/signal.c =================================================================== RCS file: /home/cvs/linux/arch/mips/kernel/signal.c,v retrieving revision 1.92 diff -u -r1.92 signal.c --- arch/mips/kernel/signal.c 11 Jul 2005 20:46:28 -0000 1.92 +++ arch/mips/kernel/signal.c 31 Aug 2005 14:35:17 -0000 @@ -384,9 +384,6 @@ return 0; } -extern void setup_rt_frame_n32(struct k_sigaction * ka, - struct pt_regs *regs, int signr, sigset_t *set, siginfo_t *info); - static inline int handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka, sigset_t *oldset, struct pt_regs *regs) { Index: arch/mips/kernel/signal32.c =================================================================== RCS file: /home/cvs/linux/arch/mips/kernel/signal32.c,v retrieving revision 1.33 diff -u -r1.33 signal32.c --- arch/mips/kernel/signal32.c 11 Jul 2005 20:46:28 -0000 1.33 +++ arch/mips/kernel/signal32.c 31 Aug 2005 14:35:18 -0000 @@ -647,8 +647,8 @@ return (void *)((sp - frame_size) & ALMASK); } -void setup_frame_32(struct k_sigaction * ka, struct pt_regs *regs, - int signr, sigset_t *set) +int setup_frame_32(struct k_sigaction * ka, struct pt_regs *regs, + int signr, sigset_t *set) { struct sigframe *frame; int err = 0; @@ -694,13 +694,14 @@ current->comm, current->pid, frame, regs->cp0_epc, frame->sf_code); #endif - return; + return 1; give_sigsegv: force_sigsegv(signr, current); + return 0; } -void setup_rt_frame_32(struct k_sigaction * ka, struct pt_regs *regs, int signr, sigset_t *set, siginfo_t *info) +int setup_rt_frame_32(struct k_sigaction * ka, struct pt_regs *regs, int signr, sigset_t *set, siginfo_t *info) { struct rt_sigframe32 *frame; int err = 0; @@ -763,10 +764,11 @@ current->comm, current->pid, frame, regs->cp0_epc, frame->rs_code); #endif - return; + return 1; give_sigsegv: force_sigsegv(signr, current); + return 0; } static inline int handle_signal(unsigned long sig, siginfo_t *info,