diff options
author | Gustavo A. R. Silva <gustavo@embeddedor.com> | 2019-02-07 18:28:17 -0600 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2019-02-18 14:01:59 +0100 |
commit | 3c97ce1f86851bff81876ec0ced73527d2f08a01 (patch) | |
tree | e3f81b1acd5da3be48912650502743742d771d34 /net/bluetooth | |
parent | 16e183423f1a3aeb603d7648d2ca3a578d5a9941 (diff) | |
download | linux-3c97ce1f86851bff81876ec0ced73527d2f08a01.tar.bz2 |
Bluetooth: a2mp: 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 foo {
int stuff;
struct boo entry[];
};
size = sizeof(struct foo) + count * sizeof(struct boo);
instance = alloc(size, GFP_KERNEL)
Instead of leaving these open-coded and prone to type mistakes, we can
now use the new struct_size() helper:
size = struct_size(instance, entry, count);
instance = alloc(size, GFP_KERNEL)
This code was detected with the help of Coccinelle.
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/a2mp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c index 58fc6333d412..5f918ea18b5a 100644 --- a/net/bluetooth/a2mp.c +++ b/net/bluetooth/a2mp.c @@ -174,7 +174,7 @@ static int a2mp_discover_req(struct amp_mgr *mgr, struct sk_buff *skb, num_ctrl++; } - len = num_ctrl * sizeof(struct a2mp_cl) + sizeof(*rsp); + len = struct_size(rsp, cl, num_ctrl); rsp = kmalloc(len, GFP_ATOMIC); if (!rsp) { read_unlock(&hci_dev_list_lock); |