patch-2.4.22 linux-2.4.22/arch/s390x/kernel/signal32.c
Next file: linux-2.4.22/arch/s390x/kernel/wrapper32.S
Previous file: linux-2.4.22/arch/s390x/kernel/signal.c
Back to the patch index
Back to the overall index
- Lines: 49
- Date:
2003-08-25 04:44:40.000000000 -0700
- Orig file:
linux-2.4.21/arch/s390x/kernel/signal32.c
- Orig date:
2002-08-02 17:39:43.000000000 -0700
diff -urN linux-2.4.21/arch/s390x/kernel/signal32.c linux-2.4.22/arch/s390x/kernel/signal32.c
@@ -302,7 +302,7 @@
save_fp_regs(&fpregs);
__put_user(fpregs.fpc, &sregs->fpregs.fpc);
for(i=0; i<NUM_FPRS; i++)
- err |= __put_user(fpregs.fprs[i].d, &sregs->fpregs.fprs[i].d);
+ err |= __put_user(fpregs.fprs[i].ui, &sregs->fpregs.fprs[i].d);
}
return(err);
@@ -331,7 +331,7 @@
(regs->psw.addr&PSW_ADDR_DEBUGCHANGE);
__get_user(fpregs.fpc, &sregs->fpregs.fpc);
for(i=0; i<NUM_FPRS; i++)
- err |= __get_user(fpregs.fprs[i].d, &sregs->fpregs.fprs[i].d);
+ err |= __get_user(fpregs.fprs[i].ui, &sregs->fpregs.fprs[i].d);
if(!err)
restore_fp_regs(&fpregs);
}
@@ -474,6 +474,10 @@
goto give_sigsegv;
}
+ /* Set up backchain. */
+ if (__put_user((unsigned int) regs->gprs[15], (unsigned int *) frame))
+ goto give_sigsegv;
+
/* Set up registers for signal handler */
regs->gprs[15] = (addr_t)frame;
regs->psw.addr = FIX_PSW(ka->sa.sa_handler);
@@ -527,6 +531,10 @@
(u16 *)(frame->retcode));
}
+ /* Set up backchain. */
+ if (__put_user((unsigned int) regs->gprs[15], (unsigned int *) frame))
+ goto give_sigsegv;
+
/* Set up registers for signal handler */
regs->gprs[15] = (addr_t)frame;
regs->psw.addr = FIX_PSW(ka->sa.sa_handler);
@@ -675,7 +683,7 @@
continue;
switch (signr) {
- case SIGCONT: case SIGCHLD: case SIGWINCH:
+ case SIGCONT: case SIGCHLD: case SIGWINCH: case SIGURG:
continue;
case SIGTSTP: case SIGTTIN: case SIGTTOU:
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)