--- a/sys/vm/vm_zone.c +++ b/sys/vm/vm_zone.c @@ -350,16 +350,17 @@ lockinit(&z->zgetlk, "zgetlk", 0, LK_CANRECURSE); z->zfreecnt = 0; + z->znalloc = 0; z->ztotal = 0; z->zmax = 0; z->zname = name; z->zitems = NULL; + bzero(z->zpcpu, sizeof(z->zpcpu)); + lwkt_gettoken(&vm_token); LIST_INSERT_HEAD(&zlist, z, zlink); lwkt_reltoken(&vm_token); - - bzero(z->zpcpu, sizeof(z->zpcpu)); } z->zkmvec = NULL; @@ -450,7 +451,7 @@ { vm_zone_t z; - z = (vm_zone_t) kmalloc(sizeof (struct vm_zone), M_ZONE, M_NOWAIT); + z = (vm_zone_t) kmalloc(sizeof (struct vm_zone), M_ZONE, M_NOWAIT | M_ZERO); if (z == NULL) return NULL;