diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2014-02-01 21:19:40 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2014-02-01 21:19:40 +0000 |
commit | 5e635cc2f10d70fc1892a2aea9c2eda4925dc5d9 (patch) | |
tree | d866dd553768beef92605b62f93a3ccc520693a9 | |
parent | ce98669c36b1fe4ce35869a8093350c844d8921e (diff) |
Lower IPL_SCHED to IPL_CLOCK where it belongs.
-rw-r--r-- | sys/arch/alpha/alpha/vm_machdep.c | 12 | ||||
-rw-r--r-- | sys/arch/alpha/include/intr.h | 8 |
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. |