summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2003-04-17 22:07:56 +0000
committerjhb <jhb@FreeBSD.org>2003-04-17 22:07:56 +0000
commit5921ce0c8b401aa293223680d0de2e351e37a430 (patch)
tree726297d820afc1f1d4bb13a8f0c2f27d366006fd
parent4b2bc05ffe060ee14c939184f48a7998702c17c2 (diff)
downloadFreeBSD-src-5921ce0c8b401aa293223680d0de2e351e37a430.zip
FreeBSD-src-5921ce0c8b401aa293223680d0de2e351e37a430.tar.gz
Don't hold the proc lock while performing sigset conversions on local
variables.
-rw-r--r--sys/compat/linux/linux_signal.c2
-rw-r--r--sys/kern/kern_sig.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/compat/linux/linux_signal.c b/sys/compat/linux/linux_signal.c
index 15a818f..b70e99d 100644
--- a/sys/compat/linux/linux_signal.c
+++ b/sys/compat/linux/linux_signal.c
@@ -396,8 +396,8 @@ linux_sigpending(struct thread *td, struct linux_sigpending_args *args)
bset = p->p_siglist;
SIGSETOR(bset, td->td_siglist);
SIGSETAND(bset, td->td_sigmask);
- bsd_to_linux_sigset(&bset, &lset);
PROC_UNLOCK(p);
+ bsd_to_linux_sigset(&bset, &lset);
mask = lset.__bits[0];
return (copyout(&mask, args->mask, sizeof(mask)));
}
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c
index c105535..6e2ae50 100644
--- a/sys/kern/kern_sig.c
+++ b/sys/kern/kern_sig.c
@@ -904,8 +904,8 @@ osigpending(td, uap)
PROC_LOCK(p);
siglist = p->p_siglist;
SIGSETOR(siglist, td->td_siglist);
- SIG2OSIG(siglist, td->td_retval[0]);
PROC_UNLOCK(p);
+ SIG2OSIG(siglist, td->td_retval[0]);
return (0);
}
#endif /* COMPAT_43 */
OpenPOWER on IntegriCloud