staging: rtl8192e: Make use kmemdup
authorHariprasad Kelam <hariprasad.kelam@gmail.com>
Sun, 4 Aug 2019 02:48:32 +0000 (08:18 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Aug 2019 15:11:33 +0000 (17:11 +0200)
As kmemdup API does kmalloc + memcpy . We can make use of it instead of
calling kmalloc and memcpy independetly.

Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
Link: https://lore.kernel.org/r/20190804024832.GA14352@hari-Inspiron-1545
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8192e/rtllib_softmac.c

index e29e8d6..f2f7529 100644 (file)
@@ -1382,15 +1382,10 @@ 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 {
-               netdev_info(ieee->dev,
-                           "%s()Warning: can't alloc memory for assocreq_ies\n",
-                           __func__);
+       ieee->assocreq_ies = kmemdup(ies, ieee->assocreq_ies_len, GFP_ATOMIC);
+       if (!ieee->assocreq_ies)
                ieee->assocreq_ies_len = 0;
-       }
+
        return skb;
 }
 
@@ -2259,17 +2254,12 @@ 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 {
-                               netdev_info(ieee->dev,
-                                           "%s()Warning: can't alloc memory for assocresp_ies\n",
-                                           __func__);
+                       if (!ieee->assocresp_ies)
                                ieee->assocresp_ies_len = 0;
-                       }
+
                        rtllib_associate_complete(ieee);
                } else {
                        /* aid could not been allocated */