summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/alpha/alpha/interrupt.c4
-rw-r--r--sys/kern/kern_intr.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/alpha/alpha/interrupt.c b/sys/alpha/alpha/interrupt.c
index 7c7c22b..e33f9d5 100644
--- a/sys/alpha/alpha/interrupt.c
+++ b/sys/alpha/alpha/interrupt.c
@@ -437,7 +437,11 @@ alpha_dispatch_intr(void *frame, unsigned long vector)
"alpha_dispatch_intr: disabling vector 0x%x", i->vector);
ithd->it_disable(ithd->it_vector);
}
+#ifdef PREEMPTION
error = ithread_schedule(ithd, !cold);
+#else
+ error = ithread_schedule(ithd, 0);
+#endif
KASSERT(error == 0, ("got an impossible stray interrupt"));
}
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c
index e612d37..4463ac8 100644
--- a/sys/kern/kern_intr.c
+++ b/sys/kern/kern_intr.c
@@ -343,7 +343,6 @@ ithread_schedule(struct ithd *ithread, int do_switch)
CTR1(KTR_INTR, __func__ ": setrunqueue %d", p->p_pid);
p->p_stat = SRUN;
setrunqueue(p);
-#if !defined(__alpha__) || defined(PREEMPTION)
if (do_switch) {
saveintr = sched_lock.mtx_saveintr;
mtx_intr_enable(&sched_lock);
@@ -353,7 +352,6 @@ ithread_schedule(struct ithd *ithread, int do_switch)
mi_switch();
sched_lock.mtx_saveintr = saveintr;
} else
-#endif
need_resched();
} else {
CTR3(KTR_INTR, __func__ ": pid %d: it_need %d, state %d",
OpenPOWER on IntegriCloud