patch-2.4.0-test9 linux/arch/ppc/kernel/signal.c

Next file: linux/arch/ppc/kernel/smp.c
Previous file: linux/arch/ppc/kernel/setup.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test8/linux/arch/ppc/kernel/signal.c linux/arch/ppc/kernel/signal.c
@@ -154,7 +154,7 @@
 }
 
 
-asmlinkage int
+int
 sys_sigaltstack(const stack_t *uss, stack_t *uoss)
 {
 	struct pt_regs *regs = (struct pt_regs *) &uss;
@@ -232,7 +232,7 @@
  *  Each of these things must be a multiple of 16 bytes in size.
  *
  */
-asmlinkage int sys_rt_sigreturn(struct pt_regs *regs)
+int sys_rt_sigreturn(struct pt_regs *regs)
 {
 	struct rt_sigframe *rt_sf;
 	struct sigcontext_struct sigctx;
@@ -301,7 +301,6 @@
 	return ret;
 
 badframe:
-	lock_kernel();
 	do_exit(SIGSEGV);
 }
 
@@ -351,7 +350,6 @@
 	printk("badframe in setup_rt_frame, regs=%p frame=%p newsp=%lx\n",
 	       regs, frame, newsp);
 #endif
-	lock_kernel();
 	do_exit(SIGSEGV);
 }
 
@@ -418,7 +416,6 @@
 	return ret;
 
 badframe:
-	lock_kernel();
 	do_exit(SIGSEGV);
 }	
 
@@ -460,7 +457,6 @@
 	printk("badframe in setup_frame, regs=%p frame=%p newsp=%lx\n",
 	       regs, frame, newsp);
 #endif
-	lock_kernel();
 	do_exit(SIGSEGV);
 }
 
@@ -541,7 +537,6 @@
 	       regs, frame, *newspp);
 	printk("sc=%p sig=%d ka=%p info=%p oldset=%p\n", sc, sig, ka, info, oldset);
 #endif
-	lock_kernel();
 	do_exit(SIGSEGV);
 }
 
@@ -645,7 +640,6 @@
 				/* FALLTHRU */
 
 			default:
-				lock_kernel();
 				sigaddset(&current->pending.signal, signr);
 				recalc_sigpending(current);
 				current->flags |= PF_SIGNALED;
@@ -663,6 +657,7 @@
 
 		/* Whee!  Actually deliver the signal.  */
 		handle_signal(signr, ka, &info, oldset, regs, &newsp, frame);
+		break;
 	}
 
 	if (regs->trap == 0x0C00 /* System Call! */ &&

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)