summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/alpha/alpha/trap.c7
-rw-r--r--sys/amd64/amd64/trap.c5
-rw-r--r--sys/i386/i386/trap.c5
-rw-r--r--sys/kern/subr_trap.c5
4 files changed, 9 insertions, 13 deletions
diff --git a/sys/alpha/alpha/trap.c b/sys/alpha/alpha/trap.c
index 6308caf..0ba8164 100644
--- a/sys/alpha/alpha/trap.c
+++ b/sys/alpha/alpha/trap.c
@@ -139,11 +139,10 @@ userret(p, frame, oticks)
mtx_unlock_spin(&sched_lock);
if (!mtx_owned(&Giant))
mtx_lock(&Giant);
- mtx_lock_spin(&sched_lock);
- addupc_task(p, frame->tf_regs[FRAME_PC],
+ addupc_task(p, TRAPF_PC(frame),
(int)(p->p_sticks - oticks) * psratio);
- }
- mtx_unlock_spin(&sched_lock);
+ } else
+ mtx_unlock_spin(&sched_lock);
}
static void
diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c
index ddf3d77..41d0a7f 100644
--- a/sys/amd64/amd64/trap.c
+++ b/sys/amd64/amd64/trap.c
@@ -211,11 +211,10 @@ userret(p, frame, oticks)
/* XXX - do we need Giant? */
if (!mtx_owned(&Giant))
mtx_lock(&Giant);
- mtx_lock_spin(&sched_lock);
addupc_task(p, TRAPF_PC(frame),
(u_int)(p->p_sticks - oticks) * psratio);
- }
- mtx_unlock_spin(&sched_lock);
+ } else
+ mtx_unlock_spin(&sched_lock);
}
/*
diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c
index ddf3d77..41d0a7f 100644
--- a/sys/i386/i386/trap.c
+++ b/sys/i386/i386/trap.c
@@ -211,11 +211,10 @@ userret(p, frame, oticks)
/* XXX - do we need Giant? */
if (!mtx_owned(&Giant))
mtx_lock(&Giant);
- mtx_lock_spin(&sched_lock);
addupc_task(p, TRAPF_PC(frame),
(u_int)(p->p_sticks - oticks) * psratio);
- }
- mtx_unlock_spin(&sched_lock);
+ } else
+ mtx_unlock_spin(&sched_lock);
}
/*
diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c
index ddf3d77..41d0a7f 100644
--- a/sys/kern/subr_trap.c
+++ b/sys/kern/subr_trap.c
@@ -211,11 +211,10 @@ userret(p, frame, oticks)
/* XXX - do we need Giant? */
if (!mtx_owned(&Giant))
mtx_lock(&Giant);
- mtx_lock_spin(&sched_lock);
addupc_task(p, TRAPF_PC(frame),
(u_int)(p->p_sticks - oticks) * psratio);
- }
- mtx_unlock_spin(&sched_lock);
+ } else
+ mtx_unlock_spin(&sched_lock);
}
/*
OpenPOWER on IntegriCloud