tree c9c4d05fc4b79f9ac1f412cbaf737a5318a6b7b6
parent c49f0ce0b692e8018c32f529a718bb41bc934ab3
author Gustavo A. R. Silva <gustavo@embeddedor.com> 1548894835 -0600
committer David S. Miller <davem@davemloft.net> 1549062749 -0800

tulip: eeprom: use struct_size() in kmalloc()

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