summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_sig.c
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2000-04-02 17:52:43 +0000
committerdillon <dillon@FreeBSD.org>2000-04-02 17:52:43 +0000
commit6fa0b056f4d7bd22bab81ea7d5cf5ea523c12846 (patch)
tree06b2279b11d39f23cc67d1c0e4550ffb033f2948 /sys/kern/kern_sig.c
parent1d9f7bb597dbd671e7079f8c0c6174edae8ff204 (diff)
downloadFreeBSD-src-6fa0b056f4d7bd22bab81ea7d5cf5ea523c12846.zip
FreeBSD-src-6fa0b056f4d7bd22bab81ea7d5cf5ea523c12846.tar.gz
Make the sigprocmask() and geteuid() system calls MP SAFE. Expand
commentary for copyin/copyout to indicate that they are MP SAFE as well. Reviewed by: msmith
Diffstat (limited to 'sys/kern/kern_sig.c')
-rw-r--r--sys/kern/kern_sig.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index a8b7cee..e3e0e59 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -433,10 +433,11 @@ execsigs(p)
}
/*
- * Manipulate signal mask.
- * Note that we receive new mask, not pointer,
- * and return old mask as return value;
- * the library stub does the rest.
+ * do_sigprocmask() - MP SAFE ONLY IF p == curproc
+ *
+ * Manipulate signal mask. This routine is MP SAFE *ONLY* if
+ * p == curproc. Also remember that in order to remain MP SAFE
+ * no spl*() calls may be made.
*/
static int
do_sigprocmask(p, how, set, oset, old)
@@ -452,7 +453,6 @@ do_sigprocmask(p, how, set, oset, old)
error = 0;
if (set != NULL) {
- (void) splhigh();
switch (how) {
case SIG_BLOCK:
SIG_CANTMASK(*set);
@@ -472,11 +472,14 @@ do_sigprocmask(p, how, set, oset, old)
error = EINVAL;
break;
}
- (void) spl0();
}
return (error);
}
+/*
+ * sigprocmask() - MP SAFE
+ */
+
#ifndef _SYS_SYSPROTO_H_
struct sigprocmask_args {
int how;
@@ -507,6 +510,10 @@ sigprocmask(p, uap)
return (error);
}
+/*
+ * osigprocmask() - MP SAFE
+ */
+
#ifndef _SYS_SYSPROTO_H_
struct osigprocmask_args {
int how;
OpenPOWER on IntegriCloud