kcalloc() doesn't do much more than calling kzalloc(), and gcc has better optimizing opportunities when it's inlined.
The result of this patch with a fulll kernel compile (roughly equivalent to "make allyesconfig") shows a minimal size improvement: text data bss dec hex filename 25864955 5891214 2012840 33769009 2034631 vmlinux-before 25864635 5891206 2012840 33768681 20344e9 vmlinux-staticinline Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]> --- include/linux/slab.h | 15 ++++++++++++++- mm/slab.c | 14 -------------- 2 files changed, 14 insertions(+), 15 deletions(-) --- linux-2.6.13-rc5-mm1-full/include/linux/slab.h.old 2005-08-08 12:28:32.000000000 +0200 +++ linux-2.6.13-rc5-mm1-full/include/linux/slab.h 2005-08-08 12:29:59.000000000 +0200 @@ -103,8 +103,21 @@ return __kmalloc(size, flags); } -extern void *kcalloc(size_t, size_t, unsigned int __nocast); extern void *kzalloc(size_t, unsigned int __nocast); + +/** + * kcalloc - allocate memory for an array. The memory is set to zero. + * @n: number of elements. + * @size: element size. + * @flags: the type of memory to allocate. + */ +static inline void *kcalloc(size_t n, size_t size, unsigned int __nocast flags) +{ + if (n != 0 && size > INT_MAX / n) + return NULL; + return kzalloc(n * size, flags); +} + extern void kfree(const void *); extern unsigned int ksize(const void *); --- linux-2.6.13-rc5-mm1-full/mm/slab.c.old 2005-08-08 12:29:26.000000000 +0200 +++ linux-2.6.13-rc5-mm1-full/mm/slab.c 2005-08-08 12:29:53.000000000 +0200 @@ -3028,20 +3028,6 @@ EXPORT_SYMBOL(kzalloc); /** - * kcalloc - allocate memory for an array. The memory is set to zero. - * @n: number of elements. - * @size: element size. - * @flags: the type of memory to allocate. - */ -void *kcalloc(size_t n, size_t size, unsigned int __nocast flags) -{ - if (n != 0 && size > INT_MAX / n) - return NULL; - return kzalloc(n * size, flags); -} -EXPORT_SYMBOL(kcalloc); - -/** * kfree - free previously allocated memory * @objp: pointer returned by kmalloc. * - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/