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

From: Gustavo Padovan
Date: Mon Mar 18 2013 - 10:56:33 EST


Hi Alexandru,

* Alexandru Gheorghiu <gheorghiuandru@xxxxxxxxx> [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 <gheorghiuandru@xxxxxxxxx>
> ---
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/