tree e8744c7c3c30c20b7fb74dbda69326ad81aab4b0
parent c5c3899de09e307e3a0999ab8d620ab0ede05aa1
author Gustavo A. R. Silva <gustavo@embeddedor.com> 1547588692 -0600
committer David S. Miller <davem@davemloft.net> 1547701869 -0800

cxgb4/l2t: Use struct_size() in kvzalloc()

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 = kvzalloc(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 = kvzalloc(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>
