summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/os/schedctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/os/schedctl.c')
-rw-r--r--usr/src/uts/common/os/schedctl.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/usr/src/uts/common/os/schedctl.c b/usr/src/uts/common/os/schedctl.c
index 752c2535c4..ed6e74c558 100644
--- a/usr/src/uts/common/os/schedctl.c
+++ b/usr/src/uts/common/os/schedctl.c
@@ -20,12 +20,10 @@
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
#include <sys/systm.h>
#include <sys/schedctl.h>
@@ -333,14 +331,15 @@ schedctl_sigblock(kthread_t *t)
* its signal mask to block all maskable signals, then clear the
* sc_sigblock field. This finishes what user-level code requested
* to be done when it set tdp->sc_shared->sc_sigblock non-zero.
- * Called by signal-related code that holds the process's p_lock.
+ * Called from signal-related code either by the current thread for
+ * itself or by a thread that holds the process's p_lock (/proc code).
*/
void
schedctl_finish_sigblock(kthread_t *t)
{
sc_shared_t *tdp = t->t_schedctl;
- ASSERT(MUTEX_HELD(&ttoproc(t)->p_lock));
+ ASSERT(t == curthread || MUTEX_HELD(&ttoproc(t)->p_lock));
if (tdp != NULL && tdp->sc_sigblock) {
t->t_hold.__sigbits[0] = FILLSET0 & ~CANTMASK0;