leds: is31fl32xx: Use struct_size() helper
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Fri, 30 Aug 2019 18:14:48 +0000 (13:14 -0500)
committerJacek Anaszewski <jacek.anaszewski@gmail.com>
Sun, 1 Sep 2019 11:33:29 +0000 (13:33 +0200)
commit1669ec78b87c0f04c963a5fc0885505d97468c7a
tree5520f9694ca4fda4fdb1e1b1ce99c679258ba92e
parent2637fd436c60c599e0967faee1903cce58c4a7f9
leds: is31fl32xx: Use struct_size() helper

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 is31fl32xx_priv {
...
        struct is31fl32xx_led_data leds[0];
};

Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes.

So, replace the following function:

static inline size_t sizeof_is31fl32xx_priv(int num_leds)
{
       return sizeof(struct is31fl32xx_priv) +
                     (sizeof(struct is31fl32xx_led_data) * num_leds);
}

with:

struct_size(priv, leds, count)

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
drivers/leds/leds-is31fl32xx.c