[parisc-linux-cvs] fix for stracing through signal deilvery

Richard Hirst rhirst@linuxcare.com
Tue, 27 Mar 2001 21:08:28 +0100


Programs running under strace died if they lowered the signal mask
while a signal was pending.  This fixes the problem.

===================================================================
RCS file: /home/cvs/parisc/linux/arch/parisc/kernel/signal.c,v
retrieving revision 1.38
diff -u -r1.38 signal.c
--- signal.c    2001/03/23 10:41:08     1.38
+++ signal.c    2001/03/27 20:02:00
@@ -246,6 +246,8 @@
                /* regs->iaoq is undefined in the syscall return path */
                err |= __put_user(regs->gr[31], &sc->sc_iaoq[0]);
                err |= __put_user(regs->gr[31]+4, &sc->sc_iaoq[1]);
+               err |= __put_user(regs->sr[3], &sc->sc_iasq[0]);
+               err |= __put_user(regs->sr[3], &sc->sc_iasq[1]);
 #if DEBUG_SIG
                printk("setup_sigcontext: iaoq %#lx/%#lx\n", regs->gr[31], regs->gr[31]);
 #endif