On 21.01.2011 15:01, Jozsef Kadlecsik wrote: > Eric suggested to use vzalloc instead of > __vmalloc, however the former hasn't got a gfp_t argument, so I kept __vmalloc. > +/* Utility functions */ > +void * > +ip_set_alloc(size_t size, gfp_t gfp_mask) > +{ > + void *members = NULL; > + > + if (size < KMALLOC_MAX_SIZE) > + members = kzalloc(size, gfp_mask | __GFP_NOWARN); > + > + if (members) { > + pr_debug("%p: allocated with kmalloc\n", members); > + return members; > + } > + > + members = __vmalloc(size, gfp_mask | __GFP_ZERO | __GFP_HIGHMEM, > + PAGE_KERNEL); > + if (!members) > + return NULL; > + pr_debug("%p: allocated with vmalloc\n", members); > + > + return members; > +} The gfp_t argument seems unnecessary since all users use GFP_KERNEL and this is also the only reasonable choice since vmalloc() can't be used in atomic context. So the only combination of flags that is actually used is __GFP_ZERO | __GFP_HIGHMEM | __GFP_KERNEL, which is exactly what vzalloc() uses. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html