summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_alq.c
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2007-03-06 12:08:38 +0000
committercognet <cognet@FreeBSD.org>2007-03-06 12:08:38 +0000
commit3b19c338be2c3115d1a96c51ee4eaebe299cb41f (patch)
tree3a4a90ec837f7753623a754feb152dc849c92035 /sys/kern/kern_alq.c
parentd62d6373edc307b540f9369298e260f67e2019ac (diff)
downloadFreeBSD-src-3b19c338be2c3115d1a96c51ee4eaebe299cb41f.zip
FreeBSD-src-3b19c338be2c3115d1a96c51ee4eaebe299cb41f.tar.gz
Backout rev 1.17, msleep() can't be used with a spinlock.
Pointy hat to: cognet
Diffstat (limited to 'sys/kern/kern_alq.c')
-rw-r--r--sys/kern/kern_alq.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/kern/kern_alq.c b/sys/kern/kern_alq.c
index de9d25f..49aa0ac 100644
--- a/sys/kern/kern_alq.c
+++ b/sys/kern/kern_alq.c
@@ -224,7 +224,9 @@ alq_shutdown(struct alq *alq)
/* Drain IO */
while (alq->aq_flags & (AQ_FLUSHING|AQ_ACTIVE)) {
alq->aq_flags |= AQ_WANTED;
- msleep(alq, &(alq)->aq_mtx, PWAIT, "aldclose", 0);
+ ALQ_UNLOCK(alq);
+ tsleep(alq, PWAIT, "aldclose", 0);
+ ALQ_LOCK(alq);
}
ALQ_UNLOCK(alq);
@@ -431,7 +433,9 @@ alq_get(struct alq *alq, int waitok)
(ale = alq->aq_entfree) == NULL &&
(waitok & ALQ_WAITOK)) {
alq->aq_flags |= AQ_WANTED;
- msleep(alq, &(alq)->aq_mtx, PWAIT, "alqget", 0);
+ ALQ_UNLOCK(alq);
+ tsleep(alq, PWAIT, "alqget", 0);
+ ALQ_LOCK(alq);
}
if (ale != NULL) {
OpenPOWER on IntegriCloud