summaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorGustavo A. R. Silva <gustavo@embeddedor.com>2019-05-23 17:56:53 -0500
committerDavid S. Miller <davem@davemloft.net>2019-05-25 10:57:58 -0700
commit6dca9360a9d7a15cef215cea4a55575dbfd2ebdd (patch)
tree5ac4753ef4b0c9e53e9288c57a0c7b0af6c58081 /net/core
parent22942498ccebf13b076859f8746be161dc0c6d89 (diff)
downloadlinux-6dca9360a9d7a15cef215cea4a55575dbfd2ebdd.tar.gz
linux-6dca9360a9d7a15cef215cea4a55575dbfd2ebdd.tar.bz2
linux-6dca9360a9d7a15cef215cea4a55575dbfd2ebdd.zip
flow_offload: use struct_size() in kzalloc()
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; instance = kzalloc(sizeof(struct foo) + count * sizeof(struct boo), GFP_KERNEL); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r--net/core/flow_offload.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/net/core/flow_offload.c b/net/core/flow_offload.c
index 5ce7d47a960e..3d93e51b83e0 100644
--- a/net/core/flow_offload.c
+++ b/net/core/flow_offload.c
@@ -7,8 +7,7 @@ struct flow_rule *flow_rule_alloc(unsigned int num_actions)
{
struct flow_rule *rule;
- rule = kzalloc(sizeof(struct flow_rule) +
- sizeof(struct flow_action_entry) * num_actions,
+ rule = kzalloc(struct_size(rule, action.entries, num_actions),
GFP_KERNEL);
if (!rule)
return NULL;