summaryrefslogtreecommitdiffstats
path: root/sys/kern/sched_4bsd.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2007-06-05 04:12:46 +0000
committerjeff <jeff@FreeBSD.org>2007-06-05 04:12:46 +0000
commitdcba3b4fa8419f3d5a1fbb4a0008976414cb062c (patch)
treedca37ea584135d911cd4d19a155d84fc7f507a9a /sys/kern/sched_4bsd.c
parentbec3346df40450e253beff2aa53827212bf6000b (diff)
downloadFreeBSD-src-dcba3b4fa8419f3d5a1fbb4a0008976414cb062c.zip
FreeBSD-src-dcba3b4fa8419f3d5a1fbb4a0008976414cb062c.tar.gz
- Better fix for previous error; use DEVOLATILE on the td_lock pointer
it can actually sometimes be something other than sched_lock even on schedulers which rely on a global scheduler lock. Tested by: kan
Diffstat (limited to 'sys/kern/sched_4bsd.c')
-rw-r--r--sys/kern/sched_4bsd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c
index bd3286c..86e8dad 100644
--- a/sys/kern/sched_4bsd.c
+++ b/sys/kern/sched_4bsd.c
@@ -903,7 +903,7 @@ sched_switch(struct thread *td, struct thread *newtd, int flags)
#endif
/* I feel sleepy */
- cpu_switch(td, newtd, &sched_lock);
+ cpu_switch(td, newtd, __DEVOLATILE(struct mtx *, td->td_lock));
/*
* Where am I? What year is it?
* We are in the same thread that went to sleep above,
OpenPOWER on IntegriCloud