aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/kern/sys_pipe.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c
index 0e19bf8ae7b4..ad166ee992e9 100644
--- a/sys/kern/sys_pipe.c
+++ b/sys/kern/sys_pipe.c
@@ -627,8 +627,8 @@ pipelock(struct pipe *cpipe, int catch)
("%s: bad waiter count %d", __func__,
cpipe->pipe_waiters));
cpipe->pipe_waiters++;
- error = msleep(cpipe, PIPE_MTX(cpipe),
- prio, "pipelk", 0);
+ error = msleep(&cpipe->pipe_waiters, PIPE_MTX(cpipe), prio,
+ "pipelk", 0);
cpipe->pipe_waiters--;
if (error != 0)
return (error);
@@ -651,9 +651,8 @@ pipeunlock(struct pipe *cpipe)
("%s: bad waiter count %d", __func__,
cpipe->pipe_waiters));
cpipe->pipe_state &= ~PIPE_LOCKFL;
- if (cpipe->pipe_waiters > 0) {
- wakeup_one(cpipe);
- }
+ if (cpipe->pipe_waiters > 0)
+ wakeup_one(&cpipe->pipe_waiters);
}
void