summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2014-02-01 21:19:40 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2014-02-01 21:19:40 +0000
commit5e635cc2f10d70fc1892a2aea9c2eda4925dc5d9 (patch)
treed866dd553768beef92605b62f93a3ccc520693a9
parentce98669c36b1fe4ce35869a8093350c844d8921e (diff)
Lower IPL_SCHED to IPL_CLOCK where it belongs.
-rw-r--r--sys/arch/alpha/alpha/vm_machdep.c12
-rw-r--r--sys/arch/alpha/include/intr.h8
2 files changed, 11 insertions, 9 deletions
diff --git a/sys/arch/alpha/alpha/vm_machdep.c b/sys/arch/alpha/alpha/vm_machdep.c
index 6514d6bad19..ed5bf574260 100644
--- a/sys/arch/alpha/alpha/vm_machdep.c
+++ b/sys/arch/alpha/alpha/vm_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vm_machdep.c,v 1.40 2014/01/28 20:23:36 miod Exp $ */
+/* $OpenBSD: vm_machdep.c,v 1.41 2014/02/01 21:19:35 miod Exp $ */
/* $NetBSD: vm_machdep.c,v 1.55 2000/03/29 03:49:48 simonb Exp $ */
/*
@@ -223,11 +223,13 @@ cpu_fork(p1, p2, stack, stacksize, func, arg)
up->u_pcb.pcb_context[7] =
(u_int64_t)switch_trampoline; /* ra: assembly magic */
#ifdef MULTIPROCESSOR
- up->u_pcb.pcb_context[8] =
- ALPHA_PSL_IPL_HIGH; /* ps: IPL */
+ /*
+ * MULTIPROCESSOR kernels will reuse the IPL of the parent
+ * process, and will lower to IPL_NONE in proc_trampoline_mp().
+ */
+ up->u_pcb.pcb_context[8] = IPL_SCHED; /* ps: IPL */
#else
- up->u_pcb.pcb_context[8] =
- ALPHA_PSL_IPL_0; /* ps: IPL */
+ up->u_pcb.pcb_context[8] = IPL_NONE; /* ps: IPL */
#endif
}
}
diff --git a/sys/arch/alpha/include/intr.h b/sys/arch/alpha/include/intr.h
index 92bd51c1abc..1b02d9d9520 100644
--- a/sys/arch/alpha/include/intr.h
+++ b/sys/arch/alpha/include/intr.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: intr.h,v 1.42 2014/02/01 21:18:24 miod Exp $ */
+/* $OpenBSD: intr.h,v 1.43 2014/02/01 21:19:39 miod Exp $ */
/* $NetBSD: intr.h,v 1.26 2000/06/03 20:47:41 thorpej Exp $ */
/*-
@@ -117,8 +117,8 @@ struct scbvec {
#define IPL_AUDIO ALPHA_PSL_IPL_IO
#define IPL_VM ALPHA_PSL_IPL_IO
#define IPL_CLOCK ALPHA_PSL_IPL_CLOCK
-#define IPL_SCHED ALPHA_PSL_IPL_HIGH
-#define IPL_IPI ALPHA_PSL_IPL_HIGH /* occur on _IO, though */
+#define IPL_SCHED ALPHA_PSL_IPL_CLOCK
+#define IPL_IPI ALPHA_PSL_IPL_HIGH /* occur on _CLOCK, though */
#define IPL_HIGH ALPHA_PSL_IPL_HIGH
#define IPL_SOFTSERIAL 0 /* serial software interrupts */
@@ -182,11 +182,11 @@ int _splraise(int);
#define splvm() _splraise(IPL_VM)
#define splclock() _splraise(IPL_CLOCK)
#define splstatclock() _splraise(IPL_CLOCK)
+#define splsched() _splraise(IPL_SCHED)
#define splipi() _splraise(IPL_IPI)
#define splhigh() _splraise(IPL_HIGH)
#define spllock() splhigh()
-#define splsched() splhigh()
/*
* Interprocessor interrupts. In order how we want them processed.