Module Name:    src
Committed By:   rmind
Date:           Fri Apr 23 19:18:10 UTC 2010

Modified Files:
        src/sys/arch/alpha/alpha: trap.c
        src/sys/arch/amd64/amd64: netbsd32_machdep.c trap.c
        src/sys/arch/arm/arm: arm_machdep.c
        src/sys/arch/hppa/hppa: trap.c
        src/sys/arch/i386/i386: trap.c
        src/sys/arch/m68k/m68k: m68k_syscall.c
        src/sys/arch/mips/mips: mips_machdep.c
        src/sys/arch/powerpc/ibm4xx: trap.c
        src/sys/arch/powerpc/powerpc: trap.c
        src/sys/arch/sh3/sh3: vm_machdep.c
        src/sys/arch/sparc/sparc: trap.c
        src/sys/arch/sparc64/sparc64: netbsd32_machdep.c syscall.c
        src/sys/arch/vax/vax: trap.c
        src/sys/kern: kern_lwp.c sys_lwp.c
        src/sys/sys: lwp.h

Log Message:
Remove lwp_uc_pool, replace it with kmem(9), plus add some consistency.
As discussed, a while ago, with a...@.


To generate a diff of this commit:
cvs rdiff -u -r1.122 -r1.123 src/sys/arch/alpha/alpha/trap.c
cvs rdiff -u -r1.61 -r1.62 src/sys/arch/amd64/amd64/netbsd32_machdep.c \
    src/sys/arch/amd64/amd64/trap.c
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/arm/arm/arm_machdep.c
cvs rdiff -u -r1.87 -r1.88 src/sys/arch/hppa/hppa/trap.c
cvs rdiff -u -r1.255 -r1.256 src/sys/arch/i386/i386/trap.c
cvs rdiff -u -r1.39 -r1.40 src/sys/arch/m68k/m68k/m68k_syscall.c
cvs rdiff -u -r1.225 -r1.226 src/sys/arch/mips/mips/mips_machdep.c
cvs rdiff -u -r1.55 -r1.56 src/sys/arch/powerpc/ibm4xx/trap.c
cvs rdiff -u -r1.134 -r1.135 src/sys/arch/powerpc/powerpc/trap.c
cvs rdiff -u -r1.66 -r1.67 src/sys/arch/sh3/sh3/vm_machdep.c
cvs rdiff -u -r1.182 -r1.183 src/sys/arch/sparc/sparc/trap.c
cvs rdiff -u -r1.91 -r1.92 src/sys/arch/sparc64/sparc64/netbsd32_machdep.c
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/sparc64/sparc64/syscall.c
cvs rdiff -u -r1.123 -r1.124 src/sys/arch/vax/vax/trap.c
cvs rdiff -u -r1.145 -r1.146 src/sys/kern/kern_lwp.c
cvs rdiff -u -r1.48 -r1.49 src/sys/kern/sys_lwp.c
cvs rdiff -u -r1.130 -r1.131 src/sys/sys/lwp.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/alpha/alpha/trap.c
diff -u src/sys/arch/alpha/alpha/trap.c:1.122 src/sys/arch/alpha/alpha/trap.c:1.123
--- src/sys/arch/alpha/alpha/trap.c:1.122	Sat Mar 20 23:31:27 2010
+++ src/sys/arch/alpha/alpha/trap.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: trap.c,v 1.122 2010/03/20 23:31:27 chs Exp $ */
+/* $NetBSD: trap.c,v 1.123 2010/04/23 19:18:09 rmind Exp $ */
 
 /*-
  * Copyright (c) 2000, 2001 The NetBSD Foundation, Inc.
@@ -93,7 +93,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.122 2010/03/20 23:31:27 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.123 2010/04/23 19:18:09 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -103,6 +103,7 @@
 #include <sys/syscall.h>
 #include <sys/buf.h>
 #include <sys/kauth.h>
+#include <sys/kmem.h>
 #include <sys/cpu.h>
 #include <sys/atomic.h>
 
@@ -1218,18 +1219,14 @@
 void
 startlwp(void *arg)
 {
-	int err;
 	ucontext_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("Error %d from cpu_setmcontext.", err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l);
 }
 

Index: src/sys/arch/amd64/amd64/netbsd32_machdep.c
diff -u src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.61 src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.62
--- src/sys/arch/amd64/amd64/netbsd32_machdep.c:1.61	Thu Dec 10 14:13:49 2009
+++ src/sys/arch/amd64/amd64/netbsd32_machdep.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_machdep.c,v 1.61 2009/12/10 14:13:49 matt Exp $	*/
+/*	$NetBSD: netbsd32_machdep.c,v 1.62 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.61 2009/12/10 14:13:49 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.62 2010/04/23 19:18:09 rmind Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -937,13 +937,15 @@
 void
 startlwp32(void *arg)
 {
-	int err;
 	ucontext32_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext32(l, &uc->uc_mcontext, uc->uc_flags);
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext32(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	/* Note: we are freeing ucontext_t, not ucontext32_t. */
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l);
 }
 
Index: src/sys/arch/amd64/amd64/trap.c
diff -u src/sys/arch/amd64/amd64/trap.c:1.61 src/sys/arch/amd64/amd64/trap.c:1.62
--- src/sys/arch/amd64/amd64/trap.c:1.61	Tue Feb 23 06:27:40 2010
+++ src/sys/arch/amd64/amd64/trap.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.61 2010/02/23 06:27:40 cegger Exp $	*/
+/*	$NetBSD: trap.c,v 1.62 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.61 2010/02/23 06:27:40 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.62 2010/04/23 19:18:09 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -81,7 +81,7 @@
 #include <sys/acct.h>
 #include <sys/kauth.h>
 #include <sys/kernel.h>
-#include <sys/pool.h>
+#include <sys/kmem.h>
 #include <sys/ras.h>
 #include <sys/signal.h>
 #include <sys/syscall.h>
@@ -719,7 +719,8 @@
 
 	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
 	KASSERT(error == 0);
-	pool_put(&lwp_uc_pool, uc);
+
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l);
 }
 

Index: src/sys/arch/arm/arm/arm_machdep.c
diff -u src/sys/arch/arm/arm/arm_machdep.c:1.27 src/sys/arch/arm/arm/arm_machdep.c:1.28
--- src/sys/arch/arm/arm/arm_machdep.c:1.27	Thu Dec 10 14:13:49 2009
+++ src/sys/arch/arm/arm/arm_machdep.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: arm_machdep.c,v 1.27 2009/12/10 14:13:49 matt Exp $	*/
+/*	$NetBSD: arm_machdep.c,v 1.28 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -79,12 +79,12 @@
 
 #include <sys/param.h>
 
-__KERNEL_RCSID(0, "$NetBSD: arm_machdep.c,v 1.27 2009/12/10 14:13:49 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: arm_machdep.c,v 1.28 2010/04/23 19:18:09 rmind Exp $");
 
 #include <sys/exec.h>
 #include <sys/proc.h>
 #include <sys/systm.h>
-#include <sys/pool.h>
+#include <sys/kmem.h>
 #include <sys/ucontext.h>
 #include <sys/evcnt.h>
 #include <sys/cpu.h>
@@ -190,17 +190,14 @@
 void
 startlwp(void *arg)
 {
-	int err;
 	ucontext_t *uc = arg; 
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#ifdef DIAGNOSTIC
-	if (err)
-		printf("Error %d from cpu_setmcontext.", err);
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l);
 }
 

Index: src/sys/arch/hppa/hppa/trap.c
diff -u src/sys/arch/hppa/hppa/trap.c:1.87 src/sys/arch/hppa/hppa/trap.c:1.88
--- src/sys/arch/hppa/hppa/trap.c:1.87	Tue Apr  6 07:44:09 2010
+++ src/sys/arch/hppa/hppa/trap.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.87 2010/04/06 07:44:09 skrll Exp $	*/
+/*	$NetBSD: trap.c,v 1.88 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.87 2010/04/06 07:44:09 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.88 2010/04/23 19:18:09 rmind Exp $");
 
 /* #define INTRDEBUG */
 /* #define TRAPDEBUG */
@@ -82,7 +82,7 @@
 #include <sys/acct.h>
 #include <sys/signal.h>
 #include <sys/device.h>
-#include <sys/pool.h>
+#include <sys/kmem.h>
 #include <sys/userret.h>
 
 #include <net/netisr.h>
@@ -1295,18 +1295,14 @@
 void
 startlwp(void *arg)
 {
-	int err;
 	ucontext_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("Error %d from cpu_setmcontext.", err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l, l->l_md.md_regs->tf_iioq_head, 0);
 }
 

Index: src/sys/arch/i386/i386/trap.c
diff -u src/sys/arch/i386/i386/trap.c:1.255 src/sys/arch/i386/i386/trap.c:1.256
--- src/sys/arch/i386/i386/trap.c:1.255	Mon Feb 22 06:42:14 2010
+++ src/sys/arch/i386/i386/trap.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.255 2010/02/22 06:42:14 darran Exp $	*/
+/*	$NetBSD: trap.c,v 1.256 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000, 2005, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.255 2010/02/22 06:42:14 darran Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.256 2010/04/23 19:18:09 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -86,7 +86,7 @@
 #include <sys/acct.h>
 #include <sys/kauth.h>
 #include <sys/kernel.h>
-#include <sys/pool.h>
+#include <sys/kmem.h>
 #include <sys/ras.h>
 #include <sys/signal.h>
 #include <sys/syscall.h>
@@ -860,7 +860,8 @@
 
 	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
 	KASSERT(error == 0);
-	pool_put(&lwp_uc_pool, uc);
+
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l);
 }
 

Index: src/sys/arch/m68k/m68k/m68k_syscall.c
diff -u src/sys/arch/m68k/m68k/m68k_syscall.c:1.39 src/sys/arch/m68k/m68k/m68k_syscall.c:1.40
--- src/sys/arch/m68k/m68k/m68k_syscall.c:1.39	Thu Feb 25 07:17:48 2010
+++ src/sys/arch/m68k/m68k/m68k_syscall.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: m68k_syscall.c,v 1.39 2010/02/25 07:17:48 skrll Exp $	*/
+/*	$NetBSD: m68k_syscall.c,v 1.40 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*-
  * Portions Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -110,7 +110,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: m68k_syscall.c,v 1.39 2010/02/25 07:17:48 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: m68k_syscall.c,v 1.40 2010/04/23 19:18:09 rmind Exp $");
 
 #include "opt_execfmt.h"
 #include "opt_compat_netbsd.h"
@@ -483,23 +483,19 @@
 void
 startlwp(void *arg)
 {
-	int err;
 	ucontext_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
 	struct frame *f = (struct frame *)l->l_md.md_regs;
+	int error;
 
 	f->f_regs[D0] = 0;
 	f->f_sr &= ~PSL_C;
 	f->f_format = FMT0;
 
-	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("Error %d from cpu_setmcontext.", err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	kmem_free(uc, sizeof(ucontext_t));
 	machine_userret(l, f, 0);
 }
 

Index: src/sys/arch/mips/mips/mips_machdep.c
diff -u src/sys/arch/mips/mips/mips_machdep.c:1.225 src/sys/arch/mips/mips/mips_machdep.c:1.226
--- src/sys/arch/mips/mips/mips_machdep.c:1.225	Sat Jan 23 15:55:54 2010
+++ src/sys/arch/mips/mips/mips_machdep.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: mips_machdep.c,v 1.225 2010/01/23 15:55:54 mrg Exp $	*/
+/*	$NetBSD: mips_machdep.c,v 1.226 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*
  * Copyright 2002 Wasabi Systems, Inc.
@@ -112,7 +112,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: mips_machdep.c,v 1.225 2010/01/23 15:55:54 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mips_machdep.c,v 1.226 2010/04/23 19:18:09 rmind Exp $");
 
 #include "opt_cputype.h"
 #include "opt_compat_netbsd32.h"
@@ -130,7 +130,7 @@
 #include <sys/core.h>
 #include <sys/device.h>
 #include <sys/kcore.h>
-#include <sys/pool.h>
+#include <sys/kmem.h>
 #include <sys/ras.h>
 #include <sys/sa.h>
 #include <sys/savar.h>
@@ -1943,17 +1943,14 @@
 startlwp(void *arg)
 {
 	ucontext_t *uc = arg;
-	int err;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext(curlwp, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("%s: Error %d from cpu_setmcontext", __func__, err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
-	userret(curlwp);
+	kmem_free(uc, sizeof(ucontext_t));
+	userret(l);
 }
 
 #ifdef COMPAT_NETBSD32
@@ -1964,17 +1961,15 @@
 startlwp32(void *arg)
 {
 	ucontext32_t *uc = arg;
-	int err;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext32(curlwp, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("%s: Error %d from cpu_setmcontext32", __func__, err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext32(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
-	userret(curlwp);
+	/* Note: we are freeing ucontext_t, not ucontext32_t. */
+	kmem_free(uc, sizeof(ucontext_t));
+	userret(l);
 }
 #endif /* COMPAT_NETBSD32 */
 

Index: src/sys/arch/powerpc/ibm4xx/trap.c
diff -u src/sys/arch/powerpc/ibm4xx/trap.c:1.55 src/sys/arch/powerpc/ibm4xx/trap.c:1.56
--- src/sys/arch/powerpc/ibm4xx/trap.c:1.55	Sat Mar 20 23:31:29 2010
+++ src/sys/arch/powerpc/ibm4xx/trap.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.55 2010/03/20 23:31:29 chs Exp $	*/
+/*	$NetBSD: trap.c,v 1.56 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.55 2010/03/20 23:31:29 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.56 2010/04/23 19:18:09 rmind Exp $");
 
 #include "opt_altivec.h"
 #include "opt_ddb.h"
@@ -78,11 +78,11 @@
 #include <sys/reboot.h>
 #include <sys/syscall.h>
 #include <sys/systm.h>
-#include <sys/pool.h>
 #include <sys/sa.h>
 #include <sys/savar.h>
 #include <sys/userret.h>
 #include <sys/kauth.h>
+#include <sys/kmem.h>
 
 #if defined(KGDB)
 #include <sys/kgdb.h>
@@ -714,18 +714,14 @@
 void
 startlwp(void *arg)
 {
-	int err;
 	ucontext_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("Error %d from cpu_setmcontext.", err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	kmem_free(uc, sizeof(ucontext_t));
 	upcallret(l);
 }
 

Index: src/sys/arch/powerpc/powerpc/trap.c
diff -u src/sys/arch/powerpc/powerpc/trap.c:1.134 src/sys/arch/powerpc/powerpc/trap.c:1.135
--- src/sys/arch/powerpc/powerpc/trap.c:1.134	Sun Mar 21 00:10:14 2010
+++ src/sys/arch/powerpc/powerpc/trap.c	Fri Apr 23 19:18:10 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.134 2010/03/21 00:10:14 chs Exp $	*/
+/*	$NetBSD: trap.c,v 1.135 2010/04/23 19:18:10 rmind Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,14 +32,14 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.134 2010/03/21 00:10:14 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.135 2010/04/23 19:18:10 rmind Exp $");
 
 #include "opt_altivec.h"
 #include "opt_ddb.h"
 #include "opt_multiprocessor.h"
 
 #include <sys/param.h>
-#include <sys/pool.h>
+
 #include <sys/proc.h>
 #include <sys/ras.h>
 #include <sys/reboot.h>
@@ -47,6 +47,7 @@
 #include <sys/savar.h>
 #include <sys/systm.h>
 #include <sys/kauth.h>
+#include <sys/kmem.h>
 
 #include <uvm/uvm_extern.h>
 
@@ -897,18 +898,15 @@
 void
 startlwp(void *arg)
 {
-	int err;
 	ucontext_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
 	struct trapframe *frame = trapframe(l);
+	int error;
 
-	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("Error %d from cpu_setmcontext.", err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
+
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l, frame);
 }
 

Index: src/sys/arch/sh3/sh3/vm_machdep.c
diff -u src/sys/arch/sh3/sh3/vm_machdep.c:1.66 src/sys/arch/sh3/sh3/vm_machdep.c:1.67
--- src/sys/arch/sh3/sh3/vm_machdep.c:1.66	Thu Dec 10 13:35:32 2009
+++ src/sys/arch/sh3/sh3/vm_machdep.c	Fri Apr 23 19:18:10 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: vm_machdep.c,v 1.66 2009/12/10 13:35:32 uch Exp $	*/
+/*	$NetBSD: vm_machdep.c,v 1.67 2010/04/23 19:18:10 rmind Exp $	*/
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc. All rights reserved.
@@ -81,7 +81,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.66 2009/12/10 13:35:32 uch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.67 2010/04/23 19:18:10 rmind Exp $");
 
 #include "opt_kstack_debug.h"
 
@@ -268,7 +268,6 @@
 	ktrsysret(SYS_fork, 0, 0);
 }
 
-
 /*
  * struct emul e_startlwp (for _lwp_create(2))
  */
@@ -276,20 +275,16 @@
 startlwp(void *arg)
 {
 	ucontext_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
 	int error;
 
 	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#ifdef DIAGNOSTIC
-	if (error)
-		printf("startlwp: error %d from cpu_setmcontext()", error);
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	KASSERT(error == 0);
 
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l);
 }
 
-
 /*
  * Exit hook
  */

Index: src/sys/arch/sparc/sparc/trap.c
diff -u src/sys/arch/sparc/sparc/trap.c:1.182 src/sys/arch/sparc/sparc/trap.c:1.183
--- src/sys/arch/sparc/sparc/trap.c:1.182	Sat Mar 20 23:31:30 2010
+++ src/sys/arch/sparc/sparc/trap.c	Fri Apr 23 19:18:10 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.182 2010/03/20 23:31:30 chs Exp $ */
+/*	$NetBSD: trap.c,v 1.183 2010/04/23 19:18:10 rmind Exp $ */
 
 /*
  * Copyright (c) 1996
@@ -49,7 +49,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.182 2010/03/20 23:31:30 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.183 2010/04/23 19:18:10 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_compat_svr4.h"
@@ -62,7 +62,7 @@
 #include <sys/proc.h>
 #include <sys/kernel.h>
 #include <sys/malloc.h>
-#include <sys/pool.h>
+#include <sys/kmem.h>
 #include <sys/resource.h>
 #include <sys/signal.h>
 #include <sys/wait.h>
@@ -71,7 +71,6 @@
 #include <sys/syscall.h>
 #include <sys/syslog.h>
 #include <sys/kauth.h>
-#include <sys/simplelock.h>
 
 #include <uvm/uvm_extern.h>
 
@@ -1303,18 +1302,14 @@
 void
 startlwp(void *arg)
 {
-	int err;
 	ucontext_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("Error %d from cpu_setmcontext.", err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l, l->l_md.md_tf->tf_pc, 0);
 }
 

Index: src/sys/arch/sparc64/sparc64/netbsd32_machdep.c
diff -u src/sys/arch/sparc64/sparc64/netbsd32_machdep.c:1.91 src/sys/arch/sparc64/sparc64/netbsd32_machdep.c:1.92
--- src/sys/arch/sparc64/sparc64/netbsd32_machdep.c:1.91	Thu Dec 10 14:13:52 2009
+++ src/sys/arch/sparc64/sparc64/netbsd32_machdep.c	Fri Apr 23 19:18:10 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: netbsd32_machdep.c,v 1.91 2009/12/10 14:13:52 matt Exp $	*/
+/*	$NetBSD: netbsd32_machdep.c,v 1.92 2010/04/23 19:18:10 rmind Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.91 2009/12/10 14:13:52 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.92 2010/04/23 19:18:10 rmind Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -1346,18 +1346,15 @@
 void
 startlwp32(void *arg)
 {
-	int err;
 	ucontext32_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext32(l, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("Error %d from cpu_setmcontext.", err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext32(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	/* Note: we are freeing ucontext_t, not ucontext32_t. */
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l, 0, 0);
 }
 

Index: src/sys/arch/sparc64/sparc64/syscall.c
diff -u src/sys/arch/sparc64/sparc64/syscall.c:1.36 src/sys/arch/sparc64/sparc64/syscall.c:1.37
--- src/sys/arch/sparc64/sparc64/syscall.c:1.36	Sat Nov 21 04:16:52 2009
+++ src/sys/arch/sparc64/sparc64/syscall.c	Fri Apr 23 19:18:10 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: syscall.c,v 1.36 2009/11/21 04:16:52 rmind Exp $ */
+/*	$NetBSD: syscall.c,v 1.37 2010/04/23 19:18:10 rmind Exp $ */
 
 /*-
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -79,7 +79,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.36 2009/11/21 04:16:52 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: syscall.c,v 1.37 2010/04/23 19:18:10 rmind Exp $");
 
 #include "opt_sa.h"
 
@@ -89,6 +89,7 @@
 #include <sys/sa.h>
 #include <sys/savar.h>
 #include <sys/signal.h>
+#include <sys/kmem.h>
 #include <sys/ktrace.h>
 #include <sys/syscall.h>
 #include <sys/syscallvar.h>
@@ -473,26 +474,20 @@
 	ktrsysret((l->l_proc->p_lflag & PL_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
 }
 
-
-
 /* 
  * Start a new LWP
  */
 void
 startlwp(void *arg)
 {
-	int err;
 	ucontext_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
+	int error;
 
-	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("Error %d from cpu_setmcontext.", err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	kmem_free(uc, sizeof(ucontext_t));
 	userret(l, 0, 0);
 }
 

Index: src/sys/arch/vax/vax/trap.c
diff -u src/sys/arch/vax/vax/trap.c:1.123 src/sys/arch/vax/vax/trap.c:1.124
--- src/sys/arch/vax/vax/trap.c:1.123	Sat Mar 20 23:31:30 2010
+++ src/sys/arch/vax/vax/trap.c	Fri Apr 23 19:18:10 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: trap.c,v 1.123 2010/03/20 23:31:30 chs Exp $     */
+/*	$NetBSD: trap.c,v 1.124 2010/04/23 19:18:10 rmind Exp $     */
 
 /*
  * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -33,7 +33,7 @@
  /* All bugs are subject to removal without further notice */
 		
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.123 2010/03/20 23:31:30 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.124 2010/04/23 19:18:10 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_multiprocessor.h"
@@ -47,7 +47,7 @@
 #include <sys/exec.h>
 #include <sys/sa.h>
 #include <sys/savar.h>
-#include <sys/pool.h>
+#include <sys/kmem.h>
 #include <sys/kauth.h>
 
 #include <uvm/uvm_extern.h>
@@ -375,19 +375,15 @@
 void
 startlwp(void *arg)
 {
-	int err;
 	ucontext_t *uc = arg;
-	struct lwp *l = curlwp;
+	lwp_t *l = curlwp;
 	struct pcb *pcb;
+	int error;
 
-	err = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
-#if DIAGNOSTIC
-	if (err) {
-		printf("Error %d from cpu_setmcontext.", err);
-	}
-#endif
-	pool_put(&lwp_uc_pool, uc);
+	error = cpu_setmcontext(l, &uc->uc_mcontext, uc->uc_flags);
+	KASSERT(error == 0);
 
+	kmem_free(uc, sizeof(ucontext_t));
 	/* XXX - profiling spoiled here */
 	pcb = lwp_getpcb(l);
 	userret(l, pcb->framep, l->l_proc->p_sticks);

Index: src/sys/kern/kern_lwp.c
diff -u src/sys/kern/kern_lwp.c:1.145 src/sys/kern/kern_lwp.c:1.146
--- src/sys/kern/kern_lwp.c:1.145	Mon Apr 12 23:20:18 2010
+++ src/sys/kern/kern_lwp.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_lwp.c,v 1.145 2010/04/12 23:20:18 pooka Exp $	*/
+/*	$NetBSD: kern_lwp.c,v 1.146 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -209,7 +209,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.145 2010/04/12 23:20:18 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.146 2010/04/23 19:18:09 rmind Exp $");
 
 #include "opt_ddb.h"
 #include "opt_lockdebug.h"
@@ -242,11 +242,8 @@
 #include <uvm/uvm_extern.h>
 #include <uvm/uvm_object.h>
 
-struct lwplist	alllwp = LIST_HEAD_INITIALIZER(alllwp);
-
-struct pool lwp_uc_pool;
-
-static pool_cache_t lwp_cache;
+struct lwplist		alllwp = LIST_HEAD_INITIALIZER(alllwp);
+static pool_cache_t	lwp_cache;
 
 /* DTrace proc provider probes */
 SDT_PROBE_DEFINE(proc,,,lwp_create,
@@ -266,8 +263,6 @@
 lwpinit(void)
 {
 
-	pool_init(&lwp_uc_pool, sizeof(ucontext_t), 0, 0, 0, "lwpucpl",
-	    &pool_allocator_nointr, IPL_NONE);
 	lwpinit_specificdata();
 	lwp_sys_init();
 	lwp_cache = pool_cache_init(sizeof(lwp_t), MIN_LWP_ALIGNMENT, 0, 0,

Index: src/sys/kern/sys_lwp.c
diff -u src/sys/kern/sys_lwp.c:1.48 src/sys/kern/sys_lwp.c:1.49
--- src/sys/kern/sys_lwp.c:1.48	Sun Nov  1 21:46:09 2009
+++ src/sys/kern/sys_lwp.c	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: sys_lwp.c,v 1.48 2009/11/01 21:46:09 rmind Exp $	*/
+/*	$NetBSD: sys_lwp.c,v 1.49 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_lwp.c,v 1.48 2009/11/01 21:46:09 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_lwp.c,v 1.49 2010/04/23 19:18:09 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -95,11 +95,10 @@
 	mutex_exit(p->p_lock);
 #endif
 
-	newuc = pool_get(&lwp_uc_pool, PR_WAITOK);
-
+	newuc = kmem_alloc(sizeof(ucontext_t), KM_SLEEP);
 	error = copyin(SCARG(uap, ucp), newuc, p->p_emul->e_ucsize);
 	if (error) {
-		pool_put(&lwp_uc_pool, newuc);
+		kmem_free(newuc, sizeof(ucontext_t));
 		return error;
 	}
 
@@ -107,7 +106,7 @@
 
 	uaddr = uvm_uarea_alloc();
 	if (__predict_false(uaddr == 0)) {
-		pool_put(&lwp_uc_pool, newuc);
+		kmem_free(newuc, sizeof(ucontext_t));
 		return ENOMEM;
 	}
 
@@ -115,7 +114,7 @@
 	    NULL, 0, p->p_emul->e_startlwp, newuc, &l2, l->l_class);
 	if (__predict_false(error)) {
 		uvm_uarea_free(uaddr);
-		pool_put(&lwp_uc_pool, newuc);
+		kmem_free(newuc, sizeof(ucontext_t));
 		return error;
 	}
 
@@ -123,7 +122,7 @@
 	error = copyout(&lid, SCARG(uap, new_lwp), sizeof(lid));
 	if (error) {
 		lwp_exit(l2);
-		pool_put(&lwp_uc_pool, newuc);
+		kmem_free(newuc, sizeof(ucontext_t));
 		return error;
 	}
 

Index: src/sys/sys/lwp.h
diff -u src/sys/sys/lwp.h:1.130 src/sys/sys/lwp.h:1.131
--- src/sys/sys/lwp.h:1.130	Mon Apr 12 22:15:31 2010
+++ src/sys/sys/lwp.h	Fri Apr 23 19:18:09 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: lwp.h,v 1.130 2010/04/12 22:15:31 pooka Exp $	*/
+/*	$NetBSD: lwp.h,v 1.131 2010/04/23 19:18:09 rmind Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -210,9 +210,6 @@
 
 #ifdef _KERNEL
 extern struct lwplist alllwp;		/* List of all LWPs. */
-
-extern struct pool lwp_uc_pool;		/* memory pool for LWP startup args */
-
 extern lwp_t lwp0;			/* LWP for proc0 */
 #endif
 

Reply via email to