summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2001-06-06 00:57:24 +0000
committerjhb <jhb@FreeBSD.org>2001-06-06 00:57:24 +0000
commit7a4f835060bb43ff8f611b21d3b48d7f5be0be87 (patch)
tree018bc5c247a678195b501791ce7b2983d968d081
parentff377bfabd3b4454f252ac4ed62abfb4b5915b37 (diff)
downloadFreeBSD-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.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/kern/subr_trap.c2
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;
OpenPOWER on IntegriCloud