[parisc-linux-cvs] linux-2.6 tausq

Randolph Chung Randolph Chung <randolph@tausq.org>
Mon, 11 Aug 2003 22:06:25 -0700


> Modified files:
> 	.              : Makefile 
> 	arch/parisc/kernel: signal.c 
> 
> Log message:
> 2.6.0-test2-pa8
> handle ERESTART_RESTARTBLOCK in do_signal()


Index: Makefile
===================================================================
RCS file: /var/cvs/linux-2.6/Makefile,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile
--- Makefile	9 Aug 2003 20:24:11 -0000	1.13
+++ Makefile	12 Aug 2003 04:51:46 -0000
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 6
 SUBLEVEL = 0
-EXTRAVERSION = -test2-pa7
+EXTRAVERSION = -test2-pa8
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
Index: arch/parisc/kernel/signal.c
===================================================================
RCS file: /var/cvs/linux-2.6/arch/parisc/kernel/signal.c,v
retrieving revision 1.1
diff -u -p -r1.1 signal.c
--- arch/parisc/kernel/signal.c	29 Jul 2003 17:00:41 -0000	1.1
+++ arch/parisc/kernel/signal.c	12 Aug 2003 04:51:46 -0000
@@ -458,6 +458,8 @@ do_signal(sigset_t *oldset, struct pt_re
 		if (in_syscall) {
 			/* Check the return code */
 			switch (regs->gr[28]) {
+		        case -ERESTART_RESTARTBLOCK:
+				current_thread_info()->restart_block.fn = do_no_restart_syscall;
 			case -ERESTARTNOHAND:
 				DBG(("ERESTARTNOHAND: returning -EINTR\n"));
 				regs->gr[28] = -EINTR;
@@ -495,7 +497,8 @@ do_signal(sigset_t *oldset, struct pt_re
 	/* Did we come from a system call? */
 	if (in_syscall) {
 		/* Restart the system call - no handlers present */
-		if (regs->gr[28] == -ERESTARTNOHAND ||
+		if (regs->gr[28] == -ERESTART_RESTARTBLOCK ||
+		    regs->gr[28] == -ERESTARTNOHAND ||
 		    regs->gr[28] == -ERESTARTSYS ||
 		    regs->gr[28] == -ERESTARTNOINTR) {
 			/* Hooray for delayed branching.  We don't

-- 
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/