summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2007-12-17 08:09:37 +0000
committerdavidxu <davidxu@FreeBSD.org>2007-12-17 08:09:37 +0000
commit496a3a2c524be0d8fb834ef5bad45f4611b82969 (patch)
tree61f9721f580e57e22991413331e4cfb8d2fdb779
parent4fadeed69d00924e9b370a1aed3ebea603636314 (diff)
downloadFreeBSD-src-496a3a2c524be0d8fb834ef5bad45f4611b82969.zip
FreeBSD-src-496a3a2c524be0d8fb834ef5bad45f4611b82969.tar.gz
Check NULL pointer.
-rw-r--r--sys/kern/kern_umtx.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c
index 0857366d..6fa6bef 100644
--- a/sys/kern/kern_umtx.c
+++ b/sys/kern/kern_umtx.c
@@ -1407,8 +1407,17 @@ umtx_pi_adjust_locked(struct thread *td, u_char oldpri)
void
umtx_pi_adjust(struct thread *td, u_char oldpri)
{
+ struct umtx_q *uq;
+ struct umtx_pi *pi;
+
+ uq = td->td_umtxq;
mtx_lock_spin(&umtx_lock);
- umtx_pi_adjust_locked(td, oldpri);
+ /*
+ * Pick up the lock that td is blocked on.
+ */
+ pi = uq->uq_pi_blocked;
+ if (pi != NULL)
+ umtx_pi_adjust_locked(td, oldpri);
mtx_unlock_spin(&umtx_lock);
}
OpenPOWER on IntegriCloud