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 retrieving revision 1.122.2.3 retrieving revision 1.123 diff -u -p -r1.122.2.3 -r1.123 --- src/sys/kern/subr_pool.c 2007/01/19 20:49:54 1.122.2.3 +++ src/sys/kern/subr_pool.c 2006/10/12 01:32:18 1.123 @@ -1,7 +1,7 @@ -/* $NetBSD: subr_pool.c,v 1.122.2.3 2007/01/19 20:49:54 ad Exp $ */ +/* $NetBSD: subr_pool.c,v 1.123 2006/10/12 01:32:18 christos Exp $ */ /*- - * Copyright (c) 1997, 1999, 2000, 2002 The NetBSD Foundation, Inc. + * Copyright (c) 1997, 1999, 2000 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation @@ -38,7 +38,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.122.2.3 2007/01/19 20:49:54 ad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.123 2006/10/12 01:32:18 christos Exp $"); #include "opt_pool.h" #include "opt_poollog.h" @@ -53,7 +53,6 @@ __KERNEL_RCSID(0, "$NetBSD: subr_pool.c, #include #include #include -#include #include @@ -485,7 +484,8 @@ pa_starved_p(struct pool_allocator *pa) } static int -pool_reclaim_callback(struct callback_entry *ce, void *obj, void *arg) +pool_reclaim_callback(struct callback_entry *ce __unused, void *obj, + void *arg __unused) { struct pool *pp = obj; struct pool_allocator *pa = pp->pr_alloc; @@ -675,7 +675,6 @@ pool_init(struct pool *pp, size_t size, pp->pr_hardlimit_warning_last.tv_usec = 0; pp->pr_drain_hook = NULL; pp->pr_drain_hook_arg = NULL; - pp->pr_freecheck = NULL; /* * Decide whether to put the page header off page to avoid @@ -931,6 +930,7 @@ pool_get(struct pool *pp, int flags) #ifdef LOCKDEBUG if (flags & PR_WAITOK) ASSERT_SLEEPABLE(NULL, "pool_get(PR_WAITOK)"); + SCHED_ASSERT_UNLOCKED(); #endif simple_lock(&pp->pr_slock); @@ -1136,8 +1136,6 @@ pool_get(struct pool *pp, int flags) } simple_unlock(&pp->pr_slock); - KASSERT((((vaddr_t)v + pp->pr_itemoffset) & (pp->pr_align - 1)) == 0); - FREECHECK_OUT(&pp->pr_freecheck, v); return (v); } @@ -1151,7 +1149,7 @@ pool_do_put(struct pool *pp, void *v, st struct pool_item_header *ph; LOCK_ASSERT(simple_lock_held(&pp->pr_slock)); - FREECHECK_IN(&pp->pr_freecheck, v); + SCHED_ASSERT_UNLOCKED(); #ifdef DIAGNOSTIC if (__predict_false(pp->pr_nout == 0)) { @@ -1374,8 +1372,8 @@ pool_prime_page(struct pool *pp, caddr_t { struct pool_item *pi; caddr_t cp = storage; - const unsigned int align = pp->pr_align; - const unsigned int ioff = pp->pr_itemoffset; + unsigned int align = pp->pr_align; + unsigned int ioff = pp->pr_itemoffset; int n; LOCK_ASSERT(simple_lock_held(&pp->pr_slock)); @@ -1412,8 +1410,6 @@ pool_prime_page(struct pool *pp, caddr_t if (ioff != 0) cp = (caddr_t)(cp + (align - ioff)); - KASSERT((((vaddr_t)cp + ioff) & (align - 1)) == 0); - /* * Insert remaining chunks on the bucket list. */ @@ -1441,8 +1437,6 @@ pool_prime_page(struct pool *pp, caddr_t pi->pi_magic = PI_MAGIC; #endif cp = (caddr_t)(cp + pp->pr_size); - - KASSERT((((vaddr_t)cp + ioff) & (align - 1)) == 0); } } @@ -1626,7 +1620,7 @@ pool_reclaim(struct pool *pp) * Note, we must never be called from an interrupt context. */ void -pool_drain(void *arg) +pool_drain(void *arg __unused) { struct pool *pp; int s; @@ -1710,7 +1704,7 @@ pool_printit(struct pool *pp, const char } static void -pool_print_pagelist(struct pool *pp, struct pool_pagelist *pl, +pool_print_pagelist(struct pool *pp __unused, struct pool_pagelist *pl, void (*pr)(const char *, ...)) { struct pool_item_header *ph; @@ -2075,8 +2069,6 @@ pool_cache_get_paddr(struct pool_cache * return (NULL); } } - KASSERT((((vaddr_t)object + pc->pc_pool->pr_itemoffset) & - (pc->pc_pool->pr_align - 1)) == 0); if (object != NULL && pap != NULL) { #ifdef POOL_VTOPHYS *pap = POOL_VTOPHYS(object); @@ -2084,8 +2076,6 @@ pool_cache_get_paddr(struct pool_cache * *pap = POOL_PADDR_INVALID; #endif } - - FREECHECK_OUT(&pc->pc_freecheck, object); return (object); } @@ -2099,9 +2089,6 @@ pool_cache_get_paddr(struct pool_cache * } simple_unlock(&pc->pc_slock); - KASSERT((((vaddr_t)object + pc->pc_pool->pr_itemoffset) & - (pc->pc_pool->pr_align - 1)) == 0); - FREECHECK_OUT(&pc->pc_freecheck, object); return (object); } @@ -2117,8 +2104,6 @@ pool_cache_put_paddr(struct pool_cache * struct pool_cache_group *pcg; int s; - FREECHECK_IN(&pc->pc_freecheck, object); - if (__predict_false((pc->pc_pool->pr_flags & PR_WANTED) != 0)) { goto destruct; } @@ -2369,7 +2354,7 @@ pool_allocator_free(struct pool *pp, voi } void * -pool_page_alloc(struct pool *pp, int flags) +pool_page_alloc(struct pool *pp __unused, int flags) { boolean_t waitok = (flags & PR_WAITOK) ? TRUE : FALSE; @@ -2377,14 +2362,14 @@ pool_page_alloc(struct pool *pp, int fla } void -pool_page_free(struct pool *pp, void *v) +pool_page_free(struct pool *pp __unused, void *v) { uvm_km_free_poolpage_cache(kmem_map, (vaddr_t) v); } static void * -pool_page_alloc_meta(struct pool *pp, int flags) +pool_page_alloc_meta(struct pool *pp __unused, int flags) { boolean_t waitok = (flags & PR_WAITOK) ? TRUE : FALSE; @@ -2392,7 +2377,7 @@ pool_page_alloc_meta(struct pool *pp, in } static void -pool_page_free_meta(struct pool *pp, void *v) +pool_page_free_meta(struct pool *pp __unused, void *v) { uvm_km_free_poolpage(kmem_map, (vaddr_t) v); @@ -2436,7 +2421,7 @@ pool_subpage_free_nointr(struct pool *pp } #endif /* POOL_SUBPAGE */ void * -pool_page_alloc_nointr(struct pool *pp, int flags) +pool_page_alloc_nointr(struct pool *pp __unused, int flags) { boolean_t waitok = (flags & PR_WAITOK) ? TRUE : FALSE; @@ -2444,7 +2429,7 @@ pool_page_alloc_nointr(struct pool *pp, } void -pool_page_free_nointr(struct pool *pp, void *v) +pool_page_free_nointr(struct pool *pp __unused, void *v) { uvm_km_free_poolpage_cache(kernel_map, (vaddr_t) v);