summaryrefslogtreecommitdiff
path: root/sys/arch/mac68k
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2000-06-05 11:03:06 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2000-06-05 11:03:06 +0000
commita9373777186bac0acc8148d4108429a9fc82c3c7 (patch)
tree42ea358aca2501d0078055c9026a71cb55ab667c /sys/arch/mac68k
parent7f0672f1404b8202f54f66098bec7fd4b3e6725b (diff)
Changes to exit handling.
cpu_exit no longer frees the vmspace and u-area. This is now handled by a separate kernel thread "reaper". This is to avoid sleeping locks in the critical path of cpu_exit where we're not allowed to sleep. From NetBSD
Diffstat (limited to 'sys/arch/mac68k')
-rw-r--r--sys/arch/mac68k/mac68k/locore.s12
-rw-r--r--sys/arch/mac68k/mac68k/vm_machdep.c3
2 files changed, 6 insertions, 9 deletions
diff --git a/sys/arch/mac68k/mac68k/locore.s b/sys/arch/mac68k/mac68k/locore.s
index efe1f0d149a..7e062a830b4 100644
--- a/sys/arch/mac68k/mac68k/locore.s
+++ b/sys/arch/mac68k/mac68k/locore.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.s,v 1.22 1999/01/20 13:31:16 niklas Exp $ */
+/* $OpenBSD: locore.s,v 1.23 2000/06/05 11:02:59 art Exp $ */
/* $NetBSD: locore.s,v 1.74 1997/02/02 08:17:46 thorpej Exp $ */
/*
@@ -1232,12 +1232,10 @@ ENTRY(switch_exit)
movl #nullpcb,_curpcb | save state into garbage pcb
lea tmpstk,sp | goto a tmp stack
- /* Free old process's user area. */
- movl #USPACE,sp@- | size of u-area
- movl a0@(P_ADDR),sp@- | address of process's u-area
- movl _kernel_map,sp@- | map it was allocated in
- jbsr _kmem_free | deallocate it
- lea sp@(12),sp | pop args
+ /* Schedule the vmspace and stack to be freed. */
+ movl a0,sp@- | exit2(p)
+ jbsr _C_LABEL(exit2)
+ lea sp@(4),sp | pop args
jra _cpu_switch
diff --git a/sys/arch/mac68k/mac68k/vm_machdep.c b/sys/arch/mac68k/mac68k/vm_machdep.c
index 82e722ca7c5..e89a7fe0a9a 100644
--- a/sys/arch/mac68k/mac68k/vm_machdep.c
+++ b/sys/arch/mac68k/mac68k/vm_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vm_machdep.c,v 1.15 1999/10/10 18:29:22 art Exp $ */
+/* $OpenBSD: vm_machdep.c,v 1.16 2000/06/05 11:03:00 art Exp $ */
/* $NetBSD: vm_machdep.c,v 1.21 1996/09/16 18:00:31 scottr Exp $ */
/*
@@ -153,7 +153,6 @@ volatile void
cpu_exit(p)
struct proc *p;
{
- vmspace_free(p->p_vmspace);
(void) splhigh();
cnt.v_swtch++;