summaryrefslogtreecommitdiff
path: root/sys/arch/mips64
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/mips64')
-rw-r--r--sys/arch/mips64/mips64/vm_machdep.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/arch/mips64/mips64/vm_machdep.c b/sys/arch/mips64/mips64/vm_machdep.c
index 1add229a76d..e074e3873d8 100644
--- a/sys/arch/mips64/mips64/vm_machdep.c
+++ b/sys/arch/mips64/mips64/vm_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vm_machdep.c,v 1.10 2007/04/26 17:04:33 miod Exp $ */
+/* $OpenBSD: vm_machdep.c,v 1.11 2007/05/09 19:21:49 miod Exp $ */
/*
* Copyright (c) 1988 University of Utah.
* Copyright (c) 1992, 1993
@@ -98,7 +98,9 @@ cpu_fork(p1, p2, stack, stacksize, func, arg)
pcb = &p2->p_addr->u_pcb;
*pcb = p1->p_addr->u_pcb;
- pcb->pcb_context.val[11] = (register_t)pcb->pcb_regs.sr;
+ pcb->pcb_context.val[12] = idle_mask & IC_INT_MASK;
+ pcb->pcb_context.val[11] = (pcb->pcb_regs.sr & ~SR_INT_MASK) |
+ ((idle_mask << 8) & SR_INT_MASK);
pcb->pcb_context.val[10] = (register_t)proc_trampoline;
pcb->pcb_context.val[8] = (register_t)(caddr_t)pcb + USPACE - 64;
pcb->pcb_context.val[0] = (register_t)func;