2013-03-17 08:40:08

by Alexandru Gheorghiu

[permalink] [raw]
Subject: [PATCH] net: bluetooth: Replaced kzalloc and memcpy with kmemdup

Replaced calls to kzalloc followed by memcpy with a single call to kmemdup.
Patch found using coccinelle.

Signed-off-by: Alexandru Gheorghiu <[email protected]>
---
net/bluetooth/a2mp.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c
index eb0f4b1..140e81c 100644
--- a/net/bluetooth/a2mp.c
+++ b/net/bluetooth/a2mp.c
@@ -397,13 +397,12 @@ static int a2mp_getampassoc_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
if (ctrl) {
u8 *assoc;

- assoc = kzalloc(assoc_len, GFP_KERNEL);
+ assoc = kmemdup(rsp->amp_assoc, assoc_len, GFP_KERNEL);
if (!assoc) {
amp_ctrl_put(ctrl);
return -ENOMEM;
}

- memcpy(assoc, rsp->amp_assoc, assoc_len);
ctrl->assoc = assoc;
ctrl->assoc_len = assoc_len;
ctrl->assoc_rem_len = assoc_len;
@@ -472,13 +471,12 @@ static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
size_t assoc_len = le16_to_cpu(hdr->len) - sizeof(*req);
u8 *assoc;

- assoc = kzalloc(assoc_len, GFP_KERNEL);
+ assoc = kmemdup(rep->amp_assoc, assoc_len, GFP_KERNEL);
if (!assoc) {
amp_ctrl_put(ctrl);
return -ENOMEM;
}

- memcpy(assoc, req->amp_assoc, assoc_len);
ctrl->assoc = assoc;
ctrl->assoc_len = assoc_len;
ctrl->assoc_rem_len = assoc_len;
--
1.7.9.5


2013-03-18 14:56:27

by Gustavo Padovan

[permalink] [raw]
Subject: Re: [PATCH] net: bluetooth: Replaced kzalloc and memcpy with kmemdup

Hi Alexandru,

* Alexandru Gheorghiu <[email protected]> [2013-03-16 16:07:10 +0200]:

> Replaced calls to kzalloc followed by memcpy with a single call to kmemdup.
> Patch found using coccinelle.
>
> Signed-off-by: Alexandru Gheorghiu <[email protected]>
> ---
> net/bluetooth/a2mp.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c
> index eb0f4b1..140e81c 100644
> --- a/net/bluetooth/a2mp.c
> +++ b/net/bluetooth/a2mp.c
> @@ -397,13 +397,12 @@ static int a2mp_getampassoc_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
> if (ctrl) {
> u8 *assoc;
>
> - assoc = kzalloc(assoc_len, GFP_KERNEL);
> + assoc = kmemdup(rsp->amp_assoc, assoc_len, GFP_KERNEL);
> if (!assoc) {
> amp_ctrl_put(ctrl);
> return -ENOMEM;
> }
>
> - memcpy(assoc, rsp->amp_assoc, assoc_len);
> ctrl->assoc = assoc;
> ctrl->assoc_len = assoc_len;
> ctrl->assoc_rem_len = assoc_len;
> @@ -472,13 +471,12 @@ static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
> size_t assoc_len = le16_to_cpu(hdr->len) - sizeof(*req);
> u8 *assoc;
>
> - assoc = kzalloc(assoc_len, GFP_KERNEL);
> + assoc = kmemdup(rep->amp_assoc, assoc_len, GFP_KERNEL);

Please get into the habit of build your patches before sending them upstream:

CC [M] net/bluetooth/a2mp.o
net/bluetooth/a2mp.c: In function ‘a2mp_createphyslink_req’:
net/bluetooth/a2mp.c:474:19: error: ‘rep’ undeclared (first use in this function)
net/bluetooth/a2mp.c:474:19: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [net/bluetooth/a2mp.o] Error 1
make[1]: *** [net/bluetooth] Error 2


Gustavo