Date: Thu, 25 Jul 2013 17:26:16 +1000 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Tim Kientzle <kientzle@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r253636 - head/sys/vm Message-ID: <20130725171038.O841@besplex.bde.org> In-Reply-To: <201307250348.r6P3mbsG049595@svn.freebsd.org> References: <201307250348.r6P3mbsG049595@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 25 Jul 2013, Tim Kientzle wrote: > Log: > Clear entire map structure including locks so that the > locks don't accidentally appear to have been already > initialized. > > In particular, this fixes a consistent kernel crash on > armv6 with: > panic: lock "vm map (user)" 0xc09cc050 already initialized > that appeared with r251709. > > PR: arm/180820 > > Modified: > head/sys/vm/vm_map.c > > Modified: head/sys/vm/vm_map.c > ============================================================================== > --- head/sys/vm/vm_map.c Thu Jul 25 03:44:12 2013 (r253635) > +++ head/sys/vm/vm_map.c Thu Jul 25 03:48:37 2013 (r253636) > @@ -239,8 +239,7 @@ vm_map_zinit(void *mem, int size, int fl > vm_map_t map; > > map = (vm_map_t)mem; > - map->nentries = 0; > - map->size = 0; > + memset(map, 0, sizeof(*map)); > mtx_init(&map->system_mtx, "vm map (system)", NULL, MTX_DEF | MTX_DUPOK); > sx_init(&map->lock, "vm map (user)"); > return (0); memset() to value 0 is spelled bzero() in the kernel. Before this commit, vm used normal style in 21 of 28 instances. The style regression is even smaller in kern -- 18 of 169 instances (3 in comments, and 1 of these in a loop doing a memset to a nonzero value, which was required before about FreeBSD-4 since memset() didn't exist in the kernel. memset() is still a slightly pessimized wrapper round bzero() when the value is nonzero, and a more pessimized loop otherwise). In FreeBSD-4, this style bug was not present in vm (0 of 16 instances) and was smaller in kern (6 of 121 instances (3 in comments, and 1 to #define a buggy memset() in terms of bzero() for the other 2)). Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130725171038.O841>