On Sat, 2019-08-03 at 23:10 +0530, Hariprasad Kelam wrote:
> As kmemdup API does kmalloc + memcpy . We can make use of it instead of
> calling kmalloc and memcpy independetly.
[]
> diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c 
> b/drivers/staging/rtl8192e/rtllib_softmac.c
[]
> @@ -1382,10 +1382,8 @@ rtllib_association_req(struct rtllib_network *beacon,
>       ieee->assocreq_ies = NULL;
>       ies = &(hdr->info_element[0].id);
>       ieee->assocreq_ies_len = (skb->data + skb->len) - ies;
> -     ieee->assocreq_ies = kmalloc(ieee->assocreq_ies_len, GFP_ATOMIC);
> -     if (ieee->assocreq_ies)
> -             memcpy(ieee->assocreq_ies, ies, ieee->assocreq_ies_len);
> -     else {
> +     ieee->assocreq_ies = kmemdup(ies, ieee->assocreq_ies_len, GFP_ATOMIC);
> +     if (!ieee->assocreq_ies) {
>               netdev_info(ieee->dev,
>                           "%s()Warning: can't alloc memory for 
> assocreq_ies\n",
>                           __func__);
> @@ -2259,12 +2257,10 @@ rtllib_rx_assoc_resp(struct rtllib_device *ieee, 
> struct sk_buff *skb,
>                       ieee->assocresp_ies = NULL;
>                       ies = &(assoc_resp->info_element[0].id);
>                       ieee->assocresp_ies_len = (skb->data + skb->len) - ies;
> -                     ieee->assocresp_ies = kmalloc(ieee->assocresp_ies_len,
> +                     ieee->assocresp_ies = kmemdup(ies,
> +                                                   ieee->assocresp_ies_len,
>                                                     GFP_ATOMIC);
> -                     if (ieee->assocresp_ies)
> -                             memcpy(ieee->assocresp_ies, ies,
> -                                    ieee->assocresp_ies_len);
> -                     else {
> +                     if (!ieee->assocresp_ies) {
>                               netdev_info(ieee->dev,
>                                           "%s()Warning: can't alloc memory 
> for assocresp_ies\n",
>                                           __func__);

Could also remove the netdev_info() uses for allocation failures.
These are redundant as a dump_stack() is already done when OOM.


_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to