aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_synch.c
diff options
context:
space:
mode:
authorStephan Uphoff <ups@FreeBSD.org>2005-04-08 03:37:53 +0000
committerStephan Uphoff <ups@FreeBSD.org>2005-04-08 03:37:53 +0000
commit779186434a3d7c3ca8c09ef90f75cf757f369a96 (patch)
tree1dd51e535e839033d7b1c0ba6104fb1725aa3705 /sys/kern/kern_synch.c
parent37da95af97b68bf3eb7f704bad1a89f540d4d9f3 (diff)
downloadsrc-779186434a3d7c3ca8c09ef90f75cf757f369a96.tar.gz
src-779186434a3d7c3ca8c09ef90f75cf757f369a96.zip
Sprinkle some volatile magic and rearrange things a bit to avoid race
conditions in critical_exit now that it no longer blocks interrupts. Reviewed by: jhb
Notes
Notes: svn path=/head/; revision=144777
Diffstat (limited to 'sys/kern/kern_synch.c')
-rw-r--r--sys/kern/kern_synch.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c
index d86f570ea462..001cf2ac703e 100644
--- a/sys/kern/kern_synch.c
+++ b/sys/kern/kern_synch.c
@@ -286,7 +286,7 @@ mi_switch(int flags, struct thread *newtd)
mtx_assert(&Giant, MA_NOTOWNED);
#endif
KASSERT(td->td_critnest == 1 || (td->td_critnest == 2 &&
- (td->td_pflags & TDP_OWEPREEMPT) != 0 && (flags & SW_INVOL) != 0 &&
+ (td->td_owepreempt) && (flags & SW_INVOL) != 0 &&
newtd == NULL) || panicstr,
("mi_switch: switch in a critical section"));
KASSERT((flags & (SW_INVOL | SW_VOL)) != 0,