summaryrefslogtreecommitdiff
path: root/sys/kern/subr_trap.c
diff options
context:
space:
mode:
authorJake Burkholder <jake@FreeBSD.org>2002-03-29 16:35:26 +0000
committerJake Burkholder <jake@FreeBSD.org>2002-03-29 16:35:26 +0000
commitd0ce9a7e079d21cb97b436ed282e8a3accd1bf1f (patch)
treee9eef5126c7bc7935260d949155e4f3eb728510f /sys/kern/subr_trap.c
parent1183d01466878348a54b68d2a3d3229c047bdce0 (diff)
Notes
Diffstat (limited to 'sys/kern/subr_trap.c')
-rw-r--r--sys/kern/subr_trap.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c
index 6fdb9c3ed56a..81b4a7589aa6 100644
--- a/sys/kern/subr_trap.c
+++ b/sys/kern/subr_trap.c
@@ -123,7 +123,6 @@ ast(framep)
struct proc *p = td->td_proc;
struct kse *ke = td->td_kse;
u_int prticks, sticks;
- register_t s;
int sflag;
int flags;
#if defined(DEV_NPX) && !defined(SMP)
@@ -137,16 +136,13 @@ ast(framep)
#endif
mtx_assert(&Giant, MA_NOTOWNED);
prticks = 0; /* XXX: Quiet warning. */
- s = intr_disable();
- while ((ke->ke_flags & (KEF_ASTPENDING | KEF_NEEDRESCHED)) != 0) {
- intr_restore(s);
td->td_frame = framep;
/*
* This updates the p_sflag's for the checks below in one
* "atomic" operation with turning off the astpending flag.
* If another AST is triggered while we are handling the
* AST's saved in sflag, the astpending flag will be set and
- * we will loop again.
+ * ast() will be called again.
*/
mtx_lock_spin(&sched_lock);
sticks = ke->ke_sticks;
@@ -190,13 +186,5 @@ ast(framep)
#ifdef DIAGNOSTIC
cred_free_thread(td);
#endif
- s = intr_disable();
- }
mtx_assert(&Giant, MA_NOTOWNED);
- /*
- * We need to keep interrupts disabled so that if any further AST's
- * come in, the interrupt they come in on will be delayed until we
- * finish returning to userland. We assume that the return to userland
- * will perform the equivalent of intr_restore().
- */
}