diff options
author | julian <julian@FreeBSD.org> | 2002-06-29 23:58:50 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 2002-06-29 23:58:50 +0000 |
commit | b858fa511c485d7184830609b206d6b774c4a7b7 (patch) | |
tree | 1bba8ab7a0d50e56cf7bd50ae4a496a08defca30 | |
parent | 886a05312e58021cfdeecabf0adf1aca9f8561a7 (diff) | |
download | FreeBSD-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.c | 2 | ||||
-rw-r--r-- | sys/amd64/amd64/trap.c | 2 | ||||
-rw-r--r-- | sys/i386/i386/trap.c | 2 | ||||
-rw-r--r-- | sys/ia64/ia64/trap.c | 2 | ||||
-rw-r--r-- | sys/sparc64/sparc64/trap.c | 2 |
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 { |