devm_kcalloc is a simple wrapper around devm_kzalloc for arrays. This is needed because kcalloc is often used in network devices. Signed-off-by: Brandon Philips --- drivers/base/devres.c | 16 ++++++++++++++++ include/linux/device.h | 2 ++ 2 files changed, 18 insertions(+) Index: linux-2.6/drivers/base/devres.c =================================================================== --- linux-2.6.orig/drivers/base/devres.c +++ linux-2.6/drivers/base/devres.c @@ -630,6 +630,22 @@ void * devm_kzalloc(struct device *dev, EXPORT_SYMBOL_GPL(devm_kzalloc); /** + * devm_kcalloc - resource-managed kcalloc + * @dev: Device to allocate memory for + * @n: number of elements. + * @size: element size. + * @flags: the type of memory to allocate. + */ +void *devm_kcalloc(struct device *dev, size_t n, size_t size, + gfp_t flags) +{ + if (n != 0 && size > ULONG_MAX / n) + return NULL; + return devm_kzalloc(dev, n * size, flags); +} +EXPORT_SYMBOL_GPL(devm_kcalloc); + +/** * devm_kfree - Resource-managed kfree * @dev: Device this memory belongs to * @p: Memory to free Index: linux-2.6/include/linux/device.h =================================================================== --- linux-2.6.orig/include/linux/device.h +++ linux-2.6/include/linux/device.h @@ -402,6 +402,8 @@ extern int devres_release_group(struct d /* managed kzalloc/kfree for device drivers, no kmalloc, always use kzalloc */ extern void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp); +extern void *devm_kcalloc(struct device *dev, size_t n, size_t size, + gfp_t flags); extern void devm_kfree(struct device *dev, void *p); struct device { -- - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html