summaryrefslogtreecommitdiff
path: root/sys/arch/hppa
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2000-01-17 06:02:50 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2000-01-17 06:02:50 +0000
commitdc53ea497e7baf9f0109c4a4cc269cb8481daae8 (patch)
tree4c1eacb06fbf7906a8a936057bb5866e9a7b6321 /sys/arch/hppa
parentf6f17cd807cfe703c43ebc1fd265101095d0a7f9 (diff)
on fork, flush pcb too, update pcsq
Diffstat (limited to 'sys/arch/hppa')
-rw-r--r--sys/arch/hppa/hppa/vm_machdep.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/arch/hppa/hppa/vm_machdep.c b/sys/arch/hppa/hppa/vm_machdep.c
index a6fa790437d..dd5f80f51e4 100644
--- a/sys/arch/hppa/hppa/vm_machdep.c
+++ b/sys/arch/hppa/hppa/vm_machdep.c
@@ -1,7 +1,7 @@
-/* $OpenBSD: vm_machdep.c,v 1.12 2000/01/11 20:27:57 mickey Exp $ */
+/* $OpenBSD: vm_machdep.c,v 1.13 2000/01/17 06:02:49 mickey Exp $ */
/*
- * Copyright (c) 1999 Michael Shalayeff
+ * Copyright (c) 1999-2000 Michael Shalayeff
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -214,7 +214,9 @@ cpu_fork(p1, p2, stack, stacksize)
cpu_swapin(p2);
tf->tf_sr0 = tf->tf_sr1 = tf->tf_sr2 = tf->tf_sr3 =
- tf->tf_sr5 = tf->tf_sr6 =
+ tf->tf_sr4 = tf->tf_sr5 = tf->tf_sr6 =
+ p2->p_vmspace->vm_map.pmap->pmap_space;
+ tf->tf_iisq_head = tf->tf_iisq_tail =
p2->p_vmspace->vm_map.pmap->pmap_space;
tf->tf_sr7 = HPPA_SID_KERNEL;
tf->tf_pidr1 = tf->tf_pidr2 = p2->p_vmspace->vm_map.pmap->pmap_pid;
@@ -236,7 +238,7 @@ cpu_fork(p1, p2, stack, stacksize)
*(register_t*)(sp + HPPA_FRAME_CRP) =
(register_t)switch_trampoline;
tf->tf_sp = sp;
- fdcache(HPPA_SID_KERNEL, (vaddr_t)tf, sizeof(*tf));
+ fdcache(HPPA_SID_KERNEL, (vaddr_t)p2->p_addr, sp - (vaddr_t)p2->p_addr);
}
void