tracing/trivial: Use kcalloc instead of kzalloc to allocate array
authorThomas Meyer <thomas@m3y3r.de>
Tue, 29 Nov 2011 21:08:00 +0000 (22:08 +0100)
committerSteven Rostedt <rostedt@goodmis.org>
Mon, 13 Feb 2012 18:48:11 +0000 (13:48 -0500)
The advantage of kcalloc is, that will prevent integer overflows which could
result from the multiplication of number of elements and size and it is also
a bit nicer to read.

The semantic patch that makes this change is available
in https://lkml.org/lkml/2011/11/25/107

Link: http://lkml.kernel.org/r/1322600880.1534.347.camel@localhost.localdomain
Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/ftrace.c
kernel/trace/trace_events_filter.c
kernel/trace/trace_syscalls.c

index e2e0597..d1499e9 100644 (file)
@@ -1129,7 +1129,7 @@ static struct ftrace_hash *alloc_ftrace_hash(int size_bits)
                return NULL;
 
        size = 1 << size_bits;
-       hash->buckets = kzalloc(sizeof(*hash->buckets) * size, GFP_KERNEL);
+       hash->buckets = kcalloc(size, sizeof(*hash->buckets), GFP_KERNEL);
 
        if (!hash->buckets) {
                kfree(hash);
index 24aee71..76afaee 100644 (file)
@@ -685,7 +685,7 @@ find_event_field(struct ftrace_event_call *call, char *name)
 
 static int __alloc_pred_stack(struct pred_stack *stack, int n_preds)
 {
-       stack->preds = kzalloc(sizeof(*stack->preds)*(n_preds + 1), GFP_KERNEL);
+       stack->preds = kcalloc(n_preds + 1, sizeof(*stack->preds), GFP_KERNEL);
        if (!stack->preds)
                return -ENOMEM;
        stack->index = n_preds;
@@ -826,8 +826,7 @@ static int __alloc_preds(struct event_filter *filter, int n_preds)
        if (filter->preds)
                __free_preds(filter);
 
-       filter->preds =
-               kzalloc(sizeof(*filter->preds) * n_preds, GFP_KERNEL);
+       filter->preds = kcalloc(n_preds, sizeof(*filter->preds), GFP_KERNEL);
 
        if (!filter->preds)
                return -ENOMEM;
@@ -1486,7 +1485,7 @@ static int fold_pred(struct filter_pred *preds, struct filter_pred *root)
        children = count_leafs(preds, &preds[root->left]);
        children += count_leafs(preds, &preds[root->right]);
 
-       root->ops = kzalloc(sizeof(*root->ops) * children, GFP_KERNEL);
+       root->ops = kcalloc(children, sizeof(*root->ops), GFP_KERNEL);
        if (!root->ops)
                return -ENOMEM;
 
index cb65454..4350015 100644 (file)
@@ -468,8 +468,8 @@ int __init init_ftrace_syscalls(void)
        unsigned long addr;
        int i;
 
-       syscalls_metadata = kzalloc(sizeof(*syscalls_metadata) *
-                                       NR_syscalls, GFP_KERNEL);
+       syscalls_metadata = kcalloc(NR_syscalls, sizeof(*syscalls_metadata),
+                                   GFP_KERNEL);
        if (!syscalls_metadata) {
                WARN_ON(1);
                return -ENOMEM;