On Fri, 2013-04-19 at 08:33 +0900, Yasuaki Ishimatsu wrote: : > > > >> +static struct resource *get_resource(gfp_t flags) > >> +{ > >> + struct resource *res = NULL; > >> + > >> + spin_lock(&bootmem_resource_lock); > >> + if (bootmem_resource.sibling) { > >> + res = bootmem_resource.sibling; > >> + bootmem_resource.sibling = res->sibling; > >> + memset(res, 0, sizeof(struct resource)); > >> + } > >> + spin_unlock(&bootmem_resource_lock); > > > > > I prefer to keep memset() outside of the spin lock. > > > > spin_lock(&bootmem_resource_lock); > > if (..) { > > : > > spin_unlock(&bootmem_resource_lock); > > memset(res, 0, sizeof(struct resource)); > > } else { > > spin_unlock(&bootmem_resource_lock); > > res = kzalloc(sizeof(struct resource), flags); > > } > > Hmm. It is a little ugly. How about it? > > spin_lock(&bootmem_resource_lock); > if (bootmem_resource.sibling) { > res = bootmem_resource.sibling; > bootmem_resource.sibling = res->sibling; > } > spin_unlock(&bootmem_resource_lock); > > if (res) > memset(res, 0, sizeof(struct resource)); > else > res = kzalloc(sizeof(struct resource), flags);
Sounds good to me. Thanks, -Toshi -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/