summaryrefslogtreecommitdiffstats
path: root/sys/kern/sysv_shm.c
diff options
context:
space:
mode:
authorart <art@openbsd.org>2007-09-07 15:00:19 +0000
committerart <art@openbsd.org>2007-09-07 15:00:19 +0000
commit28a8f404b7684433ec8c33a1be137fb4052d1648 (patch)
tree22f78d06ee32ceaa581cf540b3eaddba7db0b837 /sys/kern/sysv_shm.c
parentSynced atomicio implementation in nc and sendbug with ssh. (diff)
downloadwireguard-openbsd-28a8f404b7684433ec8c33a1be137fb4052d1648.tar.xz
wireguard-openbsd-28a8f404b7684433ec8c33a1be137fb4052d1648.zip
Use M_ZERO in a few more places to shave bytes from the kernel.
eyeballed and ok dlg@
Diffstat (limited to 'sys/kern/sysv_shm.c')
-rw-r--r--sys/kern/sysv_shm.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c
index 4475cc91d9e..538f530efaf 100644
--- a/sys/kern/sysv_shm.c
+++ b/sys/kern/sysv_shm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sysv_shm.c,v 1.47 2007/05/29 10:44:28 sturm Exp $ */
+/* $OpenBSD: sysv_shm.c,v 1.48 2007/09/07 15:00:20 art Exp $ */
/* $NetBSD: sysv_shm.c,v 1.50 1998/10/21 22:24:29 tron Exp $ */
/*
@@ -535,11 +535,9 @@ shminit(void)
sizeof(struct shm_handle), 0, 0, 0, "shmpl",
&pool_allocator_nointr);
shmsegs = malloc(shminfo.shmmni * sizeof(struct shmid_ds *),
- M_SHM, M_WAITOK);
- bzero(shmsegs, shminfo.shmmni * sizeof(struct shmid_ds *));
+ M_SHM, M_WAITOK|M_ZERO);
shmseqs = malloc(shminfo.shmmni * sizeof(unsigned short),
- M_SHM, M_WAITOK);
- bzero(shmseqs, shminfo.shmmni * sizeof(unsigned short));
+ M_SHM, M_WAITOK|M_ZERO);
shminfo.shmmax *= PAGE_SIZE; /* actually in pages */
shm_last_free = 0;
@@ -601,18 +599,15 @@ sysctl_sysvshm(int *name, u_int namelen, void *oldp, size_t *oldlenp,
/* Expand shmsegs and shmseqs arrays */
newsegs = malloc(val * sizeof(struct shmid_ds *),
- M_SHM, M_WAITOK);
+ M_SHM, M_WAITOK|M_ZERO);
bcopy(shmsegs, newsegs,
shminfo.shmmni * sizeof(struct shmid_ds *));
- bzero(newsegs + shminfo.shmmni,
- (val - shminfo.shmmni) * sizeof(struct shmid_ds *));
free(shmsegs, M_SHM);
shmsegs = newsegs;
- newseqs = malloc(val * sizeof(unsigned short), M_SHM, M_WAITOK);
+ newseqs = malloc(val * sizeof(unsigned short), M_SHM,
+ M_WAITOK|M_ZERO);
bcopy(shmseqs, newseqs,
shminfo.shmmni * sizeof(unsigned short));
- bzero(newseqs + shminfo.shmmni,
- (val - shminfo.shmmni) * sizeof(unsigned short));
free(shmseqs, M_SHM);
shmseqs = newseqs;
shminfo.shmmni = val;