diff options
author | Gustavo A. R. Silva <gustavo@embeddedor.com> | 2019-01-04 12:43:22 -0600 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2019-01-07 18:05:22 +0530 |
commit | 55f53b9c1746bba0e1b3a8d82ff3abe7ad3b96ce (patch) | |
tree | 2055b0e27f4b86659caac4b4a579114d62f1b096 /drivers/dma/st_fdma.c | |
parent | ed414d580310c3ec95abcef508035040e21a629d (diff) |
dmaengine: st_fdma: 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;
void *entry[];
};
instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, 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>
Acked-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/st_fdma.c')
-rw-r--r-- | drivers/dma/st_fdma.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/dma/st_fdma.c b/drivers/dma/st_fdma.c index 954f7cf62bb1..bc7a1de3f29b 100644 --- a/drivers/dma/st_fdma.c +++ b/drivers/dma/st_fdma.c @@ -243,8 +243,7 @@ static struct st_fdma_desc *st_fdma_alloc_desc(struct st_fdma_chan *fchan, struct st_fdma_desc *fdesc; int i; - fdesc = kzalloc(sizeof(*fdesc) + - sizeof(struct st_fdma_sw_node) * sg_len, GFP_NOWAIT); + fdesc = kzalloc(struct_size(fdesc, node, sg_len), GFP_NOWAIT); if (!fdesc) return NULL; |