linux rhirst

Richard Hirst rhirst@puffin.external.hp.com
Wed, 22 Nov 2000 09:51:34 -0700


CVSROOT:	/home/cvs/parisc
Module name:	linux
Changes by:	rhirst	00/11/22 09:51:34

Modified files:
	arch/parisc/kernel: entry.S signal.c syscall.S 

Log message:
Fix signal handling.  There were major problems if a signal was received
while a process was running (as oppsoed to being blocked on a syscall).
The return path from the signal handler was via rt_sigreturn and the
syscall_exit path, which cannot restore registers correctly.  We now
check the syscall number and, if rt_sigreturn and the process was running,
we return via the intr_return path rather than syscall_exit.  This code
will change again soon as I make all syscalls for traced processes return
via intr_return (so we can twiddle with psw bits cleanly).