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 devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel