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.21.2.2 retrieving revision 1.21.2.2.4.1 diff -u -p -r1.21.2.2 -r1.21.2.2.4.1 --- src/sys/kern/subr_pool.c 1999/04/07 00:34:55 1.21.2.2 +++ src/sys/kern/subr_pool.c 1999/11/30 13:34:45 1.21.2.2.4.1 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_pool.c,v 1.21.2.2 1999/04/07 00:34:55 thorpej Exp $ */ +/* $NetBSD: subr_pool.c,v 1.21.2.2.4.1 1999/11/30 13:34:45 itojun Exp $ */ /*- * Copyright (c) 1997, 1999 The NetBSD Foundation, Inc. @@ -258,8 +258,11 @@ pr_rmpage(pp, ph) pp->pr_npagefree++; if ((pp->pr_roflags & PR_PHINPAGE) == 0) { + int s; LIST_REMOVE(ph, ph_hashlist); + s = splhigh(); pool_put(&phpool, ph); + splx(s); } if (pp->pr_curpage == ph) { @@ -933,12 +936,14 @@ pool_prime_page(pp, storage) caddr_t cp = storage; unsigned int align = pp->pr_align; unsigned int ioff = pp->pr_itemoffset; - int n; + int s, n; if ((pp->pr_roflags & PR_PHINPAGE) != 0) { ph = (struct pool_item_header *)(cp + pp->pr_phoffset); } else { + s = splhigh(); ph = pool_get(&phpool, PR_URGENT); + splx(s); LIST_INSERT_HEAD(&pp->pr_hashtab[PR_HASH_INDEX(pp, cp)], ph, ph_hashlist); }