patch-2.4.0-test8 linux/arch/sparc64/solaris/signal.c
Next file: linux/drivers/block/floppy.c
Previous file: linux/arch/sparc64/solaris/misc.c
Back to the patch index
Back to the overall index
- Lines: 45
- Date:
Thu Sep 7 08:32:00 2000
- Orig file:
v2.4.0-test7/linux/arch/sparc64/solaris/signal.c
- Orig date:
Mon Jan 12 15:15:44 1998
diff -u --recursive --new-file v2.4.0-test7/linux/arch/sparc64/solaris/signal.c linux/arch/sparc64/solaris/signal.c
@@ -1,4 +1,4 @@
-/* $Id: signal.c,v 1.5 1997/12/15 15:04:59 jj Exp $
+/* $Id: signal.c,v 1.7 2000/09/05 21:44:54 davem Exp $
* signal.c: Signal emulation for Solaris
*
* Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
@@ -311,7 +311,7 @@
switch (which) {
case 1: /* sigpending */
spin_lock_irq(¤t->sigmask_lock);
- sigandsets(&s, ¤t->blocked, ¤t->signal);
+ sigandsets(&s, ¤t->blocked, ¤t->pending.signal);
recalc_sigpending(current);
spin_unlock_irq(¤t->sigmask_lock);
break;
@@ -368,9 +368,13 @@
if (info) {
struct sol_siginfo *s = (struct sol_siginfo *)A(info);
- if (get_user (status, (unsigned int *)A(info))) return -EFAULT;
- __put_user_ret (SOLARIS_SIGCLD, &s->si_signo, -EFAULT);
- __put_user_ret (ret, &s->_data._proc._pid, -EFAULT);
+ if (get_user (status, (unsigned int *)A(info)))
+ return -EFAULT;
+
+ if (__put_user (SOLARIS_SIGCLD, &s->si_signo) ||
+ __put_user (ret, &s->_data._proc._pid))
+ return -EFAULT;
+
switch (status & 0xff) {
case 0: ret = SOLARIS_CLD_EXITED;
status = (status >> 8) & 0xff;
@@ -390,8 +394,10 @@
status = linux_to_solaris_signals[status & 0x7f];
break;
}
- __put_user_ret (ret, &s->si_code, -EFAULT);
- __put_user_ret (status, &s->_data._proc._pdata._cld._status, -EFAULT);
+
+ if (__put_user (ret, &s->si_code) ||
+ __put_user (status, &s->_data._proc._pdata._cld._status))
+ return -EFAULT;
}
return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)