diff options
author | Gustavo A. R. Silva <gustavo@embeddedor.com> | 2019-01-08 15:27:05 -0600 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-01-11 18:54:21 -0800 |
commit | 8d008e64a2ebe6567c3f5e048b05842a0297350b (patch) | |
tree | b98ddbf7c70f924322660ceb34b849c8db080ac9 | |
parent | 41d1c8839e5f8cb781cc635f12791decee8271b7 (diff) | |
download | linux-8d008e64a2ebe6567c3f5e048b05842a0297350b.tar.gz linux-8d008e64a2ebe6567c3f5e048b05842a0297350b.tar.bz2 linux-8d008e64a2ebe6567c3f5e048b05842a0297350b.zip |
mISDN: hfcsusb: 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>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/isdn/hardware/mISDN/hfcsusb.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/isdn/hardware/mISDN/hfcsusb.c b/drivers/isdn/hardware/mISDN/hfcsusb.c index 6d05946b445e..124ff530da82 100644 --- a/drivers/isdn/hardware/mISDN/hfcsusb.c +++ b/drivers/isdn/hardware/mISDN/hfcsusb.c @@ -262,8 +262,7 @@ hfcsusb_ph_info(struct hfcsusb *hw) struct dchannel *dch = &hw->dch; int i; - phi = kzalloc(sizeof(struct ph_info) + - dch->dev.nrbchan * sizeof(struct ph_info_ch), GFP_ATOMIC); + phi = kzalloc(struct_size(phi, bch, dch->dev.nrbchan), GFP_ATOMIC); phi->dch.ch.protocol = hw->protocol; phi->dch.ch.Flags = dch->Flags; phi->dch.state = dch->state; |