Module Name:    src
Committed By:   christos
Date:           Sun Feb 10 17:13:33 UTC 2019

Modified Files:
        src/sys/dev/dmover: dmover_io.c
        src/sys/dev/ic: ncr53c9x.c wd33c93.c
        src/sys/dev/raidframe: rf_alloclist.c rf_callback.c rf_dagutils.c
            rf_diskqueue.c rf_map.c rf_psstatus.c
        src/sys/kern: kern_time.c subr_pool.c sys_aio.c vfs_dirhash.c
        src/sys/sys: pool.h

Log Message:
Introduce PR_ZERO to avoid open-coding memset()s everywhere. OK riastradh@.


To generate a diff of this commit:
cvs rdiff -u -r1.45 -r1.46 src/sys/dev/dmover/dmover_io.c
cvs rdiff -u -r1.150 -r1.151 src/sys/dev/ic/ncr53c9x.c
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/ic/wd33c93.c
cvs rdiff -u -r1.27 -r1.28 src/sys/dev/raidframe/rf_alloclist.c
cvs rdiff -u -r1.22 -r1.23 src/sys/dev/raidframe/rf_callback.c
cvs rdiff -u -r1.55 -r1.56 src/sys/dev/raidframe/rf_dagutils.c
cvs rdiff -u -r1.54 -r1.55 src/sys/dev/raidframe/rf_diskqueue.c
cvs rdiff -u -r1.48 -r1.49 src/sys/dev/raidframe/rf_map.c
cvs rdiff -u -r1.35 -r1.36 src/sys/dev/raidframe/rf_psstatus.c
cvs rdiff -u -r1.194 -r1.195 src/sys/kern/kern_time.c
cvs rdiff -u -r1.231 -r1.232 src/sys/kern/subr_pool.c
cvs rdiff -u -r1.43 -r1.44 src/sys/kern/sys_aio.c
cvs rdiff -u -r1.12 -r1.13 src/sys/kern/vfs_dirhash.c
cvs rdiff -u -r1.83 -r1.84 src/sys/sys/pool.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/dev/dmover/dmover_io.c
diff -u src/sys/dev/dmover/dmover_io.c:1.45 src/sys/dev/dmover/dmover_io.c:1.46
--- src/sys/dev/dmover/dmover_io.c:1.45	Thu Nov 30 15:25:55 2017
+++ src/sys/dev/dmover/dmover_io.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: dmover_io.c,v 1.45 2017/11/30 20:25:55 christos Exp $	*/
+/*	$NetBSD: dmover_io.c,v 1.46 2019/02/10 17:13:33 christos Exp $	*/
 
 /*
  * Copyright (c) 2002, 2003 Wasabi Systems, Inc.
@@ -55,7 +55,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dmover_io.c,v 1.45 2017/11/30 20:25:55 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dmover_io.c,v 1.46 2019/02/10 17:13:33 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/queue.h>
@@ -180,9 +180,7 @@ dmio_state_get(void)
 {
 	struct dmio_state *ds;
 
-	ds = pool_get(&dmio_state_pool, PR_WAITOK);
-
-	memset(ds, 0, sizeof(*ds));
+	ds = pool_get(&dmio_state_pool, PR_WAITOK | PR_ZERO);
 
 	getnanotime(&ds->ds_btime);
 	ds->ds_atime = ds->ds_mtime = ds->ds_btime;

Index: src/sys/dev/ic/ncr53c9x.c
diff -u src/sys/dev/ic/ncr53c9x.c:1.150 src/sys/dev/ic/ncr53c9x.c:1.151
--- src/sys/dev/ic/ncr53c9x.c:1.150	Sat Feb  2 22:19:27 2019
+++ src/sys/dev/ic/ncr53c9x.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ncr53c9x.c,v 1.150 2019/02/03 03:19:27 mrg Exp $	*/
+/*	$NetBSD: ncr53c9x.c,v 1.151 2019/02/10 17:13:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2002 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ncr53c9x.c,v 1.150 2019/02/03 03:19:27 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ncr53c9x.c,v 1.151 2019/02/10 17:13:33 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -843,12 +843,10 @@ ncr53c9x_get_ecb(struct ncr53c9x_softc *
 	int s;
 
 	s = splbio();
-	ecb = pool_get(&ecb_pool, PR_NOWAIT);
-	splx(s);
-	if (ecb) {
-		memset(ecb, 0, sizeof(*ecb));
+	ecb = pool_get(&ecb_pool, PR_NOWAIT | PR_ZERO);
+	if (ecb)
 		ecb->flags |= ECB_ALLOC;
-	}
+	splx(s);
 	return ecb;
 }
 

Index: src/sys/dev/ic/wd33c93.c
diff -u src/sys/dev/ic/wd33c93.c:1.27 src/sys/dev/ic/wd33c93.c:1.28
--- src/sys/dev/ic/wd33c93.c:1.27	Thu Feb  8 04:05:19 2018
+++ src/sys/dev/ic/wd33c93.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: wd33c93.c,v 1.27 2018/02/08 09:05:19 dholland Exp $	*/
+/*	$NetBSD: wd33c93.c,v 1.28 2019/02/10 17:13:33 christos Exp $	*/
 
 /*
  * Copyright (c) 1990 The Regents of the University of California.
@@ -79,7 +79,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wd33c93.c,v 1.27 2018/02/08 09:05:19 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wd33c93.c,v 1.28 2019/02/10 17:13:33 christos Exp $");
 
 #include "opt_ddb.h"
 
@@ -570,7 +570,7 @@ wd33c93_scsi_request(struct scsipi_chann
 			panic("wd33c93_scsicmd: busy");
 
 		s = splbio();
-		acb = (struct wd33c93_acb *)pool_get(&wd33c93_pool, PR_NOWAIT);
+		acb = pool_get(&wd33c93_pool, PR_NOWAIT);
 		splx(s);
 
 		if (acb == NULL) {

Index: src/sys/dev/raidframe/rf_alloclist.c
diff -u src/sys/dev/raidframe/rf_alloclist.c:1.27 src/sys/dev/raidframe/rf_alloclist.c:1.28
--- src/sys/dev/raidframe/rf_alloclist.c:1.27	Fri Feb  8 22:33:59 2019
+++ src/sys/dev/raidframe/rf_alloclist.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_alloclist.c,v 1.27 2019/02/09 03:33:59 christos Exp $	*/
+/*	$NetBSD: rf_alloclist.c,v 1.28 2019/02/10 17:13:33 christos Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -37,7 +37,7 @@
  ***************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_alloclist.c,v 1.27 2019/02/09 03:33:59 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_alloclist.c,v 1.28 2019/02/10 17:13:33 christos Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 
@@ -122,9 +122,5 @@ rf_FreeAllocList(RF_AllocListElem_t *l)
 RF_AllocListElem_t *
 rf_real_MakeAllocList(void)
 {
-	RF_AllocListElem_t *p;
-
-	p = pool_get(&rf_pools.alloclist, PR_WAITOK);
-	memset(p, 0, sizeof(*p));
-	return (p);
+	return pool_get(&rf_pools.alloclist, PR_WAITOK | PR_ZERO);
 }

Index: src/sys/dev/raidframe/rf_callback.c
diff -u src/sys/dev/raidframe/rf_callback.c:1.22 src/sys/dev/raidframe/rf_callback.c:1.23
--- src/sys/dev/raidframe/rf_callback.c:1.22	Sun Mar 15 13:17:23 2009
+++ src/sys/dev/raidframe/rf_callback.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_callback.c,v 1.22 2009/03/15 17:17:23 cegger Exp $	*/
+/*	$NetBSD: rf_callback.c,v 1.23 2019/02/10 17:13:33 christos Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -34,7 +34,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_callback.c,v 1.22 2009/03/15 17:17:23 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_callback.c,v 1.23 2019/02/10 17:13:33 christos Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 #include <sys/pool.h>
@@ -71,10 +71,7 @@ rf_ConfigureCallback(RF_ShutdownList_t *
 RF_CallbackDesc_t *
 rf_AllocCallbackDesc(void)
 {
-	RF_CallbackDesc_t *p;
-
-	p = pool_get(&rf_pools.callback, PR_WAITOK);
-	return (p);
+	return pool_get(&rf_pools.callback, PR_WAITOK);
 }
 
 void

Index: src/sys/dev/raidframe/rf_dagutils.c
diff -u src/sys/dev/raidframe/rf_dagutils.c:1.55 src/sys/dev/raidframe/rf_dagutils.c:1.56
--- src/sys/dev/raidframe/rf_dagutils.c:1.55	Fri Feb  8 22:34:00 2019
+++ src/sys/dev/raidframe/rf_dagutils.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_dagutils.c,v 1.55 2019/02/09 03:34:00 christos Exp $	*/
+/*	$NetBSD: rf_dagutils.c,v 1.56 2019/02/10 17:13:33 christos Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -33,7 +33,7 @@
  *****************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_dagutils.c,v 1.55 2019/02/09 03:34:00 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_dagutils.c,v 1.56 2019/02/10 17:13:33 christos Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 
@@ -254,11 +254,7 @@ rf_ConfigureDAGs(RF_ShutdownList_t **lis
 RF_DagHeader_t *
 rf_AllocDAGHeader(void)
 {
-	RF_DagHeader_t *dh;
-
-	dh = pool_get(&rf_pools.dagh, PR_WAITOK);
-	memset(dh, 0, sizeof(*dh));
-	return (dh);
+	return pool_get(&rf_pools.dagh, PR_WAITOK | PR_ZERO);
 }
 
 void
@@ -270,11 +266,7 @@ rf_FreeDAGHeader(RF_DagHeader_t * dh)
 RF_DagNode_t *
 rf_AllocDAGNode(void)
 {
-	RF_DagNode_t *node;
-
-	node = pool_get(&rf_pools.dagnode, PR_WAITOK);
-	memset(node, 0, sizeof(*node));
-	return (node);
+	return pool_get(&rf_pools.dagnode, PR_WAITOK | PR_ZERO);
 }
 
 void
@@ -292,12 +284,7 @@ rf_FreeDAGNode(RF_DagNode_t *node)
 RF_DagList_t *
 rf_AllocDAGList(void)
 {
-	RF_DagList_t *dagList;
-
-	dagList = pool_get(&rf_pools.daglist, PR_WAITOK);
-	memset(dagList, 0, sizeof(*dagList));
-
-	return (dagList);
+	return pool_get(&rf_pools.daglist, PR_WAITOK | PR_ZERO);
 }
 
 void
@@ -309,11 +296,7 @@ rf_FreeDAGList(RF_DagList_t *dagList)
 void *
 rf_AllocDAGPCache(void)
 {
-	void *p;
-	p = pool_get(&rf_pools.dagpcache, PR_WAITOK);
-	memset(p, 0, RF_DAGPCACHE_SIZE);
-
-	return (p);
+	return pool_get(&rf_pools.dagpcache, PR_WAITOK | PR_ZERO);
 }
 
 void
@@ -325,12 +308,7 @@ rf_FreeDAGPCache(void *p)
 RF_FuncList_t *
 rf_AllocFuncList(void)
 {
-	RF_FuncList_t *funcList;
-
-	funcList = pool_get(&rf_pools.funclist, PR_WAITOK);
-	memset(funcList, 0, sizeof(*funcList));
-
-	return (funcList);
+	return pool_get(&rf_pools.funclist, PR_WAITOK | PR_ZERO);
 }
 
 void

Index: src/sys/dev/raidframe/rf_diskqueue.c
diff -u src/sys/dev/raidframe/rf_diskqueue.c:1.54 src/sys/dev/raidframe/rf_diskqueue.c:1.55
--- src/sys/dev/raidframe/rf_diskqueue.c:1.54	Fri Feb  8 22:34:00 2019
+++ src/sys/dev/raidframe/rf_diskqueue.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_diskqueue.c,v 1.54 2019/02/09 03:34:00 christos Exp $	*/
+/*	$NetBSD: rf_diskqueue.c,v 1.55 2019/02/10 17:13:33 christos Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -66,7 +66,7 @@
  ****************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_diskqueue.c,v 1.54 2019/02/09 03:34:00 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_diskqueue.c,v 1.55 2019/02/10 17:13:33 christos Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 
@@ -367,11 +367,10 @@ rf_CreateDiskQueueData(RF_IoType_t typ, 
 {
 	RF_DiskQueueData_t *p;
 
-	p = pool_get(&rf_pools.dqd, waitflag);
+	p = pool_get(&rf_pools.dqd, waitflag | PR_ZERO);
 	if (p == NULL)
 		return (NULL);
 
-	memset(p, 0, sizeof(*p));
 	if (waitflag == PR_WAITOK) {
 		p->bp = getiobuf(NULL, true);
 	} else {

Index: src/sys/dev/raidframe/rf_map.c
diff -u src/sys/dev/raidframe/rf_map.c:1.48 src/sys/dev/raidframe/rf_map.c:1.49
--- src/sys/dev/raidframe/rf_map.c:1.48	Fri Feb  8 22:34:00 2019
+++ src/sys/dev/raidframe/rf_map.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_map.c,v 1.48 2019/02/09 03:34:00 christos Exp $	*/
+/*	$NetBSD: rf_map.c,v 1.49 2019/02/10 17:13:33 christos Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -33,7 +33,7 @@
  **************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_map.c,v 1.48 2019/02/09 03:34:00 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_map.c,v 1.49 2019/02/10 17:13:33 christos Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 
@@ -376,12 +376,7 @@ rf_ConfigureMapModule(RF_ShutdownList_t 
 RF_AccessStripeMapHeader_t *
 rf_AllocAccessStripeMapHeader(void)
 {
-	RF_AccessStripeMapHeader_t *p;
-
-	p = pool_get(&rf_pools.asm_hdr, PR_WAITOK);
-	memset(p, 0, sizeof(*p));
-
-	return (p);
+	return pool_get(&rf_pools.asm_hdr, PR_WAITOK | PR_ZERO);
 }
 
 void
@@ -394,12 +389,7 @@ rf_FreeAccessStripeMapHeader(RF_AccessSt
 RF_VoidFunctionPointerListElem_t *
 rf_AllocVFPListElem(void)
 {
-	RF_VoidFunctionPointerListElem_t *p;
-
-	p = pool_get(&rf_pools.vfple, PR_WAITOK);
-	memset(p, 0, sizeof(*p));
-
-	return (p);
+	return pool_get(&rf_pools.vfple, PR_WAITOK | PR_ZERO);
 }
 
 void
@@ -413,12 +403,7 @@ rf_FreeVFPListElem(RF_VoidFunctionPointe
 RF_VoidPointerListElem_t *
 rf_AllocVPListElem(void)
 {
-	RF_VoidPointerListElem_t *p;
-
-	p = pool_get(&rf_pools.vple, PR_WAITOK);
-	memset(p, 0, sizeof(*p));
-
-	return (p);
+	return pool_get(&rf_pools.vple, PR_WAITOK | PR_ZERO);
 }
 
 void
@@ -431,12 +416,7 @@ rf_FreeVPListElem(RF_VoidPointerListElem
 RF_ASMHeaderListElem_t *
 rf_AllocASMHeaderListElem(void)
 {
-	RF_ASMHeaderListElem_t *p;
-
-	p = pool_get(&rf_pools.asmhle, PR_WAITOK);
-	memset(p, 0, sizeof(*p));
-
-	return (p);
+	return pool_get(&rf_pools.asmhle, PR_WAITOK | PR_ZERO);
 }
 
 void
@@ -449,12 +429,7 @@ rf_FreeASMHeaderListElem(RF_ASMHeaderLis
 RF_FailedStripe_t *
 rf_AllocFailedStripeStruct(void)
 {
-	RF_FailedStripe_t *p;
-
-	p = pool_get(&rf_pools.fss, PR_WAITOK);
-	memset(p, 0, sizeof(*p));
-
-	return (p);
+	return pool_get(&rf_pools.fss, PR_WAITOK | PR_ZERO);
 }
 
 void
@@ -470,12 +445,7 @@ rf_FreeFailedStripeStruct(RF_FailedStrip
 RF_PhysDiskAddr_t *
 rf_AllocPhysDiskAddr(void)
 {
-	RF_PhysDiskAddr_t *p;
-
-	p = pool_get(&rf_pools.pda, PR_WAITOK);
-	memset(p, 0, sizeof(*p));
-
-	return (p);
+	return pool_get(&rf_pools.pda, PR_WAITOK | PR_ZERO);
 }
 /* allocates a list of PDAs, locking the free list only once when we
  * have to call calloc, we do it one component at a time to simplify

Index: src/sys/dev/raidframe/rf_psstatus.c
diff -u src/sys/dev/raidframe/rf_psstatus.c:1.35 src/sys/dev/raidframe/rf_psstatus.c:1.36
--- src/sys/dev/raidframe/rf_psstatus.c:1.35	Fri Feb  8 22:34:00 2019
+++ src/sys/dev/raidframe/rf_psstatus.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: rf_psstatus.c,v 1.35 2019/02/09 03:34:00 christos Exp $	*/
+/*	$NetBSD: rf_psstatus.c,v 1.36 2019/02/10 17:13:33 christos Exp $	*/
 /*
  * Copyright (c) 1995 Carnegie-Mellon University.
  * All rights reserved.
@@ -37,7 +37,7 @@
  *****************************************************************************/
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rf_psstatus.c,v 1.35 2019/02/09 03:34:00 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rf_psstatus.c,v 1.36 2019/02/10 17:13:33 christos Exp $");
 
 #include <dev/raidframe/raidframevar.h>
 
@@ -267,11 +267,7 @@ rf_RemoveFromActiveReconTable(RF_Raid_t 
 RF_ReconParityStripeStatus_t *
 rf_AllocPSStatus(RF_Raid_t *raidPtr)
 {
-	RF_ReconParityStripeStatus_t *p;
-
-	p = pool_get(&rf_pools.pss, PR_WAITOK);
-	memset(p, 0, sizeof(*p));
-	return (p);
+	return pool_get(&rf_pools.pss, PR_WAITOK | PR_ZERO);
 }
 
 void

Index: src/sys/kern/kern_time.c
diff -u src/sys/kern/kern_time.c:1.194 src/sys/kern/kern_time.c:1.195
--- src/sys/kern/kern_time.c:1.194	Thu Jan 31 15:09:05 2019
+++ src/sys/kern/kern_time.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_time.c,v 1.194 2019/01/31 20:09:05 maxv Exp $	*/
+/*	$NetBSD: kern_time.c,v 1.195 2019/02/10 17:13:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2004, 2005, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.194 2019/01/31 20:09:05 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.195 2019/02/10 17:13:33 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/resourcevar.h>
@@ -603,8 +603,7 @@ timer_create1(timer_t *tid, clockid_t id
 	if ((pts = p->p_timers) == NULL)
 		pts = timers_alloc(p);
 
-	pt = pool_get(&ptimer_pool, PR_WAITOK);
-	memset(pt, 0, sizeof(*pt));
+	pt = pool_get(&ptimer_pool, PR_WAITOK | PR_ZERO);
 	if (evp != NULL) {
 		if (((error =
 		    (*fetch_event)(evp, &pt->pt_ev, sizeof(pt->pt_ev))) != 0) ||
@@ -1166,8 +1165,7 @@ dosetitimer(struct proc *p, int which, s
 	if (pt == NULL) {
 		if (spare == NULL) {
 			mutex_spin_exit(&timer_lock);
-			spare = pool_get(&ptimer_pool, PR_WAITOK);
-			memset(spare, 0, sizeof(*spare));
+			spare = pool_get(&ptimer_pool, PR_WAITOK | PR_ZERO);
 			goto retry;
 		}
 		pt = spare;

Index: src/sys/kern/subr_pool.c
diff -u src/sys/kern/subr_pool.c:1.231 src/sys/kern/subr_pool.c:1.232
--- src/sys/kern/subr_pool.c:1.231	Sun Dec 23 07:15:01 2018
+++ src/sys/kern/subr_pool.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr_pool.c,v 1.231 2018/12/23 12:15:01 maxv Exp $	*/
+/*	$NetBSD: subr_pool.c,v 1.232 2019/02/10 17:13:33 christos Exp $	*/
 
 /*
  * Copyright (c) 1997, 1999, 2000, 2002, 2007, 2008, 2010, 2014, 2015, 2018
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.231 2018/12/23 12:15:01 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_pool.c,v 1.232 2019/02/10 17:13:33 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -959,8 +959,11 @@ pool_get(struct pool *pp, int flags)
 	KASSERT((((vaddr_t)v + pp->pr_itemoffset) & (pp->pr_align - 1)) == 0);
 	FREECHECK_OUT(&pp->pr_freecheck, v);
 	pool_redzone_fill(pp, v);
-	pool_kleak_fill(pp, v);
-	return (v);
+	if (flags & PR_ZERO)
+		memset(v, 0, pp->pr_size);
+	else
+		pool_kleak_fill(pp, v);
+	return v;
 }
 
 /*

Index: src/sys/kern/sys_aio.c
diff -u src/sys/kern/sys_aio.c:1.43 src/sys/kern/sys_aio.c:1.44
--- src/sys/kern/sys_aio.c:1.43	Wed May 31 22:45:13 2017
+++ src/sys/kern/sys_aio.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: sys_aio.c,v 1.43 2017/06/01 02:45:13 chs Exp $	*/
+/*	$NetBSD: sys_aio.c,v 1.44 2019/02/10 17:13:33 christos Exp $	*/
 
 /*
  * Copyright (c) 2007 Mindaugas Rasiukevicius <rmind at NetBSD org>
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_aio.c,v 1.43 2017/06/01 02:45:13 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_aio.c,v 1.44 2019/02/10 17:13:33 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -564,8 +564,7 @@ aio_enqueue_job(int op, void *aiocb_uptr
 		return error;
 
 	/* Allocate and initialize a new AIO job */
-	a_job = pool_get(&aio_job_pool, PR_WAITOK);
-	memset(a_job, 0, sizeof(struct aio_job));
+	a_job = pool_get(&aio_job_pool, PR_WAITOK | PR_ZERO);
 
 	/*
 	 * Set the data.

Index: src/sys/kern/vfs_dirhash.c
diff -u src/sys/kern/vfs_dirhash.c:1.12 src/sys/kern/vfs_dirhash.c:1.13
--- src/sys/kern/vfs_dirhash.c:1.12	Fri Sep  5 01:57:21 2014
+++ src/sys/kern/vfs_dirhash.c	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_dirhash.c,v 1.12 2014/09/05 05:57:21 matt Exp $ */
+/* $NetBSD: vfs_dirhash.c,v 1.13 2019/02/10 17:13:33 christos Exp $ */
 
 /*
  * Copyright (c) 2008 Reinoud Zandijk
@@ -28,7 +28,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_dirhash.c,v 1.12 2014/09/05 05:57:21 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_dirhash.c,v 1.13 2019/02/10 17:13:33 christos Exp $");
 
 /* CLEAN UP! */
 #include <sys/param.h>
@@ -202,8 +202,7 @@ dirhash_get(struct dirhash **dirhp)
 	/* if no dirhash was given, allocate one */
 	dirh = *dirhp;
 	if (dirh == NULL) {
-		dirh = pool_get(&dirhash_pool, PR_WAITOK);
-		memset(dirh, 0, sizeof(struct dirhash));
+		dirh = pool_get(&dirhash_pool, PR_WAITOK | PR_ZERO);
 		for (hashline = 0; hashline < DIRHASH_HASHSIZE; hashline++) {
 			LIST_INIT(&dirh->entries[hashline]);
 		}
@@ -301,8 +300,7 @@ dirhash_enter(struct dirhash *dirh,
 	}
 
 	/* add to the hashline */
-	dirh_e = pool_get(&dirhash_entry_pool, PR_WAITOK);
-	memset(dirh_e, 0, sizeof(struct dirhash_entry));
+	dirh_e = pool_get(&dirhash_entry_pool, PR_WAITOK | PR_ZERO);
 
 	dirh_e->hashvalue = hashvalue;
 	dirh_e->offset    = offset;
@@ -333,8 +331,7 @@ dirhash_enter_freed(struct dirhash *dirh
 
 	DPRINTF(("dirhash enter FREED %"PRIu64", %d\n",
 		offset, entry_size));
-	dirh_e = pool_get(&dirhash_entry_pool, PR_WAITOK);
-	memset(dirh_e, 0, sizeof(struct dirhash_entry));
+	dirh_e = pool_get(&dirhash_entry_pool, PR_WAITOK | PR_ZERO);
 
 	dirh_e->hashvalue = 0;		/* not relevant */
 	dirh_e->offset    = offset;

Index: src/sys/sys/pool.h
diff -u src/sys/sys/pool.h:1.83 src/sys/sys/pool.h:1.84
--- src/sys/sys/pool.h:1.83	Sun Dec 16 16:03:35 2018
+++ src/sys/sys/pool.h	Sun Feb 10 12:13:33 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pool.h,v 1.83 2018/12/16 21:03:35 maxv Exp $	*/
+/*	$NetBSD: pool.h,v 1.84 2019/02/10 17:13:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998, 1999, 2000, 2007 The NetBSD Foundation, Inc.
@@ -149,6 +149,7 @@ struct pool {
 #define	PR_LARGECACHE	0x1000	/* use large cache groups */
 #define	PR_GROWING	0x2000	/* pool_grow in progress */
 #define	PR_GROWINGNOWAIT 0x4000	/* pool_grow in progress by PR_NOWAIT alloc */
+#define	PR_ZERO		0x8000	/* zero data before returning */
 
 	/*
 	 * `pr_lock' protects the pool's data structures when removing

Reply via email to