diff options
author | jhb <jhb@FreeBSD.org> | 2001-06-06 00:57:24 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2001-06-06 00:57:24 +0000 |
commit | 7a4f835060bb43ff8f611b21d3b48d7f5be0be87 (patch) | |
tree | 018bc5c247a678195b501791ce7b2983d968d081 | |
parent | ff377bfabd3b4454f252ac4ed62abfb4b5915b37 (diff) | |
download | FreeBSD-src-7a4f835060bb43ff8f611b21d3b48d7f5be0be87.zip FreeBSD-src-7a4f835060bb43ff8f611b21d3b48d7f5be0be87.tar.gz |
Don't hold sched_lock across addupc_task().
Reported by: David Taylor <davidt@yadt.co.uk>
Submitted by: bde
-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/kern/subr_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 b91e001..159ef75 100644 --- a/sys/alpha/alpha/trap.c +++ b/sys/alpha/alpha/trap.c @@ -900,9 +900,9 @@ ast(framep) p->p_sflag &= ~PS_OWEUPC; mtx_unlock_spin(&sched_lock); mtx_lock(&Giant); - mtx_lock_spin(&sched_lock); /* XXX */ addupc_task(p, p->p_stats->p_prof.pr_addr, p->p_stats->p_prof.pr_ticks); + mtx_lock_spin(&sched_lock); } if (p->p_sflag & PS_ALRMPEND) { p->p_sflag &= ~PS_ALRMPEND; diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index cfc2618..c1a4e2e 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -1283,9 +1283,9 @@ ast(framep) p->p_sflag &= ~PS_OWEUPC; mtx_unlock_spin(&sched_lock); mtx_lock(&Giant); - mtx_lock_spin(&sched_lock); addupc_task(p, p->p_stats->p_prof.pr_addr, p->p_stats->p_prof.pr_ticks); + mtx_lock_spin(&sched_lock); } if (p->p_sflag & PS_ALRMPEND) { p->p_sflag &= ~PS_ALRMPEND; diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index cfc2618..c1a4e2e 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -1283,9 +1283,9 @@ ast(framep) p->p_sflag &= ~PS_OWEUPC; mtx_unlock_spin(&sched_lock); mtx_lock(&Giant); - mtx_lock_spin(&sched_lock); addupc_task(p, p->p_stats->p_prof.pr_addr, p->p_stats->p_prof.pr_ticks); + mtx_lock_spin(&sched_lock); } if (p->p_sflag & PS_ALRMPEND) { p->p_sflag &= ~PS_ALRMPEND; diff --git a/sys/ia64/ia64/trap.c b/sys/ia64/ia64/trap.c index 5b9e9d2..5573178 100644 --- a/sys/ia64/ia64/trap.c +++ b/sys/ia64/ia64/trap.c @@ -641,9 +641,9 @@ ast(framep) p->p_sflag &= ~PS_OWEUPC; mtx_unlock_spin(&sched_lock); mtx_lock(&Giant); - mtx_lock_spin(&sched_lock); addupc_task(p, p->p_stats->p_prof.pr_addr, p->p_stats->p_prof.pr_ticks); + mtx_lock_spin(&sched_lock); } if (p->p_sflag & PS_ALRMPEND) { p->p_sflag &= ~PS_ALRMPEND; diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index cfc2618..c1a4e2e 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -1283,9 +1283,9 @@ ast(framep) p->p_sflag &= ~PS_OWEUPC; mtx_unlock_spin(&sched_lock); mtx_lock(&Giant); - mtx_lock_spin(&sched_lock); addupc_task(p, p->p_stats->p_prof.pr_addr, p->p_stats->p_prof.pr_ticks); + mtx_lock_spin(&sched_lock); } if (p->p_sflag & PS_ALRMPEND) { p->p_sflag &= ~PS_ALRMPEND; |