Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/kern/subr_pool.c,v rcsdiff: /ftp/cvs/cvsroot/src/sys/kern/subr_pool.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.138.2.2 retrieving revision 1.139 diff -u -p -r1.138.2.2 -r1.139 --- src/sys/kern/subr_pool.c 2007/12/10 12:56:10 1.138.2.2 +++ src/sys/kern/subr_pool.c 2007/12/11 19:07:27 1.139 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_pool.c,v 1.138.2.2 2007/12/10 12:56:10 yamt Exp $ */ +/* $NetBSD: subr_pool.c,v 1.139 2007/12/11 19:07:27 ad Exp $ */ /*- * Copyright (c) 1997, 1999, 2000, 2002, 2007 The NetBSD Foundation, Inc. @@ -38,7 +38,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.138.2.2 2007/12/10 12:56:10 yamt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.139 2007/12/11 19:07:27 ad Exp $"); #include "opt_pool.h" #include "opt_poollog.h" @@ -101,7 +101,7 @@ static void pool_page_free_meta(struct p /* allocator for pool metadata */ struct pool_allocator pool_allocator_meta = { pool_page_alloc_meta, pool_page_free_meta, - .pa_backingmapptr = &kernel_map, + .pa_backingmapptr = &kmem_map, }; /* # of seconds to retain page after last use */ @@ -790,7 +790,7 @@ pool_init(struct pool *pp, size_t size, #ifdef POOL_DIAGNOSTIC if (flags & PR_LOGGING) { - if (kernel_map == NULL || + if (kmem_map == NULL || (pp->pr_log = malloc(pool_logsize * sizeof(struct pool_log), M_TEMP, M_NOWAIT)) == NULL) pp->pr_roflags &= ~PR_LOGGING; @@ -2081,7 +2081,7 @@ pool_cache_bootstrap(pool_cache_t pc, si /* Allocate per-CPU caches. */ memset(pc->pc_cpus, 0, sizeof(pc->pc_cpus)); pc->pc_ncpu = 0; - if (ncpu == 0) { + if (ncpu < 2) { /* XXX For sparc: boot CPU is not attached yet. */ pool_cache_cpu_init1(curcpu(), pc); } else { @@ -2111,20 +2111,6 @@ pool_cache_bootstrap(pool_cache_t pc, si void pool_cache_destroy(pool_cache_t pc) { - - pool_cache_bootstrap_destroy(pc); - pool_put(&cache_pool, pc); -} - -/* - * pool_cache_bootstrap_destroy: - * - * Kernel-private version of pool_cache_destroy(). - * Destroy a pool cache initialized by pool_cache_bootstrap. - */ -void -pool_cache_bootstrap_destroy(pool_cache_t pc) -{ struct pool *pp = &pc->pc_pool; pool_cache_cpu_t *cc; pcg_t *pcg; @@ -2164,6 +2150,7 @@ pool_cache_bootstrap_destroy(pool_cache_ /* Finally, destroy it. */ mutex_destroy(&pc->pc_lock); pool_destroy(pp); + pool_put(&cache_pool, pc); } /* @@ -2755,12 +2742,12 @@ void pool_page_free(struct pool *, void #ifdef POOL_SUBPAGE struct pool_allocator pool_allocator_kmem_fullpage = { pool_page_alloc, pool_page_free, 0, - .pa_backingmapptr = &kernel_map, + .pa_backingmapptr = &kmem_map, }; #else struct pool_allocator pool_allocator_kmem = { pool_page_alloc, pool_page_free, 0, - .pa_backingmapptr = &kernel_map, + .pa_backingmapptr = &kmem_map, }; #endif @@ -2785,7 +2772,7 @@ void pool_subpage_free(struct pool *, vo struct pool_allocator pool_allocator_kmem = { pool_subpage_alloc, pool_subpage_free, POOL_SUBPAGE, - .pa_backingmapptr = &kernel_map, + .pa_backingmapptr = &kmem_map, }; void *pool_subpage_alloc_nointr(struct pool *, int); @@ -2793,7 +2780,7 @@ void pool_subpage_free_nointr(struct poo struct pool_allocator pool_allocator_nointr = { pool_subpage_alloc, pool_subpage_free, POOL_SUBPAGE, - .pa_backingmapptr = &kernel_map, + .pa_backingmapptr = &kmem_map, }; #endif /* POOL_SUBPAGE */ @@ -2831,14 +2818,14 @@ pool_page_alloc(struct pool *pp, int fla { bool waitok = (flags & PR_WAITOK) ? true : false; - return ((void *) uvm_km_alloc_poolpage_cache(kernel_map, waitok)); + return ((void *) uvm_km_alloc_poolpage_cache(kmem_map, waitok)); } void pool_page_free(struct pool *pp, void *v) { - uvm_km_free_poolpage_cache(kernel_map, (vaddr_t) v); + uvm_km_free_poolpage_cache(kmem_map, (vaddr_t) v); } static void * @@ -2846,14 +2833,14 @@ pool_page_alloc_meta(struct pool *pp, in { bool waitok = (flags & PR_WAITOK) ? true : false; - return ((void *) uvm_km_alloc_poolpage(kernel_map, waitok)); + return ((void *) uvm_km_alloc_poolpage(kmem_map, waitok)); } static void pool_page_free_meta(struct pool *pp, void *v) { - uvm_km_free_poolpage(kernel_map, (vaddr_t) v); + uvm_km_free_poolpage(kmem_map, (vaddr_t) v); } #ifdef POOL_SUBPAGE