summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>2002-06-29 23:58:50 +0000
committerjulian <julian@FreeBSD.org>2002-06-29 23:58:50 +0000
commitb858fa511c485d7184830609b206d6b774c4a7b7 (patch)
tree1bba8ab7a0d50e56cf7bd50ae4a496a08defca30
parent886a05312e58021cfdeecabf0adf1aca9f8561a7 (diff)
downloadFreeBSD-src-b858fa511c485d7184830609b206d6b774c4a7b7.zip
FreeBSD-src-b858fa511c485d7184830609b206d6b774c4a7b7.tar.gz
Fix reverse ordering of locks. add a comment about locks on some platforms.
Submitted by: jhb@freebsd.org
-rw-r--r--sys/alpha/alpha/trap.c2
-rw-r--r--sys/amd64/amd64/trap.c2
-rw-r--r--sys/i386/i386/trap.c2
-rw-r--r--sys/ia64/ia64/trap.c2
-rw-r--r--sys/sparc64/sparc64/trap.c2
5 files changed, 5 insertions, 5 deletions
diff --git a/sys/alpha/alpha/trap.c b/sys/alpha/alpha/trap.c
index 17dcb14..f4af4ba 100644
--- a/sys/alpha/alpha/trap.c
+++ b/sys/alpha/alpha/trap.c
@@ -301,8 +301,8 @@ trap(a0, a1, a2, entry, framep)
if (td->td_ucred != p->p_ucred)
cred_update_thread(td);
if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) {
- mtx_lock_spin(&sched_lock);
PROC_LOCK(p);
+ mtx_lock_spin(&sched_lock);
thread_exit();
/* NOTREACHED */
}
diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c
index 8282416..fddb517 100644
--- a/sys/amd64/amd64/trap.c
+++ b/sys/amd64/amd64/trap.c
@@ -273,8 +273,8 @@ trap(frame)
* But check if we are the single thread first!
*/
if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) {
+ PROC_LOCK(p); /* check if thisis really needed */
mtx_lock_spin(&sched_lock);
- PROC_LOCK(p);
thread_exit();
/* NOTREACHED */
}
diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c
index 8282416..fddb517 100644
--- a/sys/i386/i386/trap.c
+++ b/sys/i386/i386/trap.c
@@ -273,8 +273,8 @@ trap(frame)
* But check if we are the single thread first!
*/
if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) {
+ PROC_LOCK(p); /* check if thisis really needed */
mtx_lock_spin(&sched_lock);
- PROC_LOCK(p);
thread_exit();
/* NOTREACHED */
}
diff --git a/sys/ia64/ia64/trap.c b/sys/ia64/ia64/trap.c
index 09d824f..74dfebf 100644
--- a/sys/ia64/ia64/trap.c
+++ b/sys/ia64/ia64/trap.c
@@ -337,7 +337,7 @@ trap(int vector, int imm, struct trapframe *framep)
cred_update_thread(td);
if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) {
mtx_lock_spin(&sched_lock);
- thread_exit();
+ thread_exit(); /* XXXKSE need proc lock? */
/* NOTREACHED */
}
} else {
diff --git a/sys/sparc64/sparc64/trap.c b/sys/sparc64/sparc64/trap.c
index f39d2f6..2fe9bb3 100644
--- a/sys/sparc64/sparc64/trap.c
+++ b/sys/sparc64/sparc64/trap.c
@@ -193,7 +193,7 @@ trap(struct trapframe *tf)
cred_update_thread(td);
if ((p->p_flag & P_WEXIT) && (p->p_singlethread != td)) {
mtx_lock_spin(&sched_lock);
- thread_exit();
+ thread_exit(); /* XXXKSE need proc lock? */
/* NOTREACHED */
}
} else {
OpenPOWER on IntegriCloud