summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2005-12-29 21:15:32 +0000
committerjhb <jhb@FreeBSD.org>2005-12-29 21:15:32 +0000
commitc0024de32907c92d67d30f3021e22f5b989c6189 (patch)
treea4e442fde8b5cd9facd9a64e9eaed647c7ff5cae
parentdc2b7b5f5dfe89873b4d3a409ccc2ebecd9526e9 (diff)
downloadFreeBSD-src-c0024de32907c92d67d30f3021e22f5b989c6189.zip
FreeBSD-src-c0024de32907c92d67d30f3021e22f5b989c6189.tar.gz
patch(1) and I aren't friends today. Axe a duplicate copy of
the msleep_spin() function definition. Spotted by: pjd
-rw-r--r--sys/kern/kern_synch.c82
1 files changed, 0 insertions, 82 deletions
diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c
index b49cb0a..6764e35 100644
--- a/sys/kern/kern_synch.c
+++ b/sys/kern/kern_synch.c
@@ -323,88 +323,6 @@ msleep_spin(ident, mtx, wmesg, timo)
return (rval);
}
-int
-msleep_spin(ident, mtx, wmesg, timo)
- void *ident;
- struct mtx *mtx;
- const char *wmesg;
- int timo;
-{
- struct thread *td;
- struct proc *p;
- int rval;
- WITNESS_SAVE_DECL(mtx);
-
- td = curthread;
- p = td->td_proc;
- KASSERT(mtx != NULL, ("sleeping without a mutex"));
- KASSERT(p != NULL, ("msleep1"));
- KASSERT(ident != NULL && TD_IS_RUNNING(td), ("msleep"));
-
- if (cold) {
- /*
- * During autoconfiguration, just return;
- * don't run any other threads or panic below,
- * in case this is the idle thread and already asleep.
- * XXX: this used to do "s = splhigh(); splx(safepri);
- * splx(s);" to give interrupts a chance, but there is
- * no way to give interrupts a chance now.
- */
- return (0);
- }
-
- sleepq_lock(ident);
- CTR5(KTR_PROC, "msleep_spin: thread %p (pid %ld, %s) on %s (%p)",
- (void *)td, (long)p->p_pid, p->p_comm, wmesg, ident);
-
- DROP_GIANT();
- mtx_assert(mtx, MA_OWNED | MA_NOTRECURSED);
- WITNESS_SAVE(&mtx->mtx_object, mtx);
- mtx_unlock_spin(mtx);
-
- /*
- * We put ourselves on the sleep queue and start our timeout.
- */
- sleepq_add(ident, mtx, wmesg, SLEEPQ_MSLEEP);
- if (timo)
- sleepq_set_timeout(ident, timo);
-
- /*
- * Can't call ktrace with any spin locks held so it can lock the
- * ktrace_mtx lock, and WITNESS_WARN considers it an error to hold
- * any spin lock. Thus, we have to drop the sleepq spin lock while
- * we handle those requests. This is safe since we have placed our
- * thread on the sleep queue already.
- */
-#ifdef KTRACE
- if (KTRPOINT(td, KTR_CSW)) {
- sleepq_release(ident);
- ktrcsw(1, 0);
- sleepq_lock(ident);
- }
-#endif
-#ifdef WITNESS
- sleepq_release(ident);
- WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "Sleeping on \"%s\"",
- wmesg);
- sleepq_lock(ident);
-#endif
- if (timo)
- rval = sleepq_timedwait(ident);
- else {
- sleepq_wait(ident);
- rval = 0;
- }
-#ifdef KTRACE
- if (KTRPOINT(td, KTR_CSW))
- ktrcsw(0, 0);
-#endif
- PICKUP_GIANT();
- mtx_lock_spin(mtx);
- WITNESS_RESTORE(&mtx->mtx_object, mtx);
- return (rval);
-}
-
/*
* Make all threads sleeping on the specified identifier runnable.
*/
OpenPOWER on IntegriCloud