On Tuesday 15 August 2006 13:39, David Miller wrote: > [XFRM]: Dynamic xfrm_state hash table sizing.
> +static struct hlist_head *xfrm_state_hash_alloc(unsigned int sz) > +{ > + struct hlist_head *n; > + > + if (sz <= PAGE_SIZE) > + n = kmalloc(sz, GFP_KERNEL); > + else if (hashdist) > + n = __vmalloc(sz, GFP_KERNEL, PAGE_KERNEL); > + else > + n = (struct hlist_head *) > + __get_free_pages(GFP_KERNEL, get_order(sz)); > + > + if (n) > + memset(n, 0, sz); > + > + return n; > +} This kind of functions are becoming very common and duplicated... maybe we can factorize it ? Also, it would be cool to be able to vmalloc()/free_pages hugetlb pages for very large hash tables... > + > +static void xfrm_state_hash_free(struct hlist_head *n, unsigned int sz) > +{ > + if (sz <= PAGE_SIZE) > + kfree(n); > + else if (hashdist) > + vfree(n); > + else > + free_pages((unsigned long)n, get_order(sz)); > +} > + Eric - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html