staging: prism2sta: Replace memcpy with ether_add_copy
authorIoana Ciornei <ciorneiioana@gmail.com>
Wed, 18 Mar 2015 13:26:05 +0000 (15:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Mar 2015 12:11:45 +0000 (13:11 +0100)
Replace memcpy() with ether_addr_copy() since addresses are __aligned(2).
The 2 structures are aligned to u16 as showed below:

typedef struct hfa384x_authenticateStation_data {
u8 address[ETH_ALEN];                           /* 0    6 */
u16 status;                                     /* 6    2 */
u16 algorithm;                                  /* 8    2 */
} __packed hfa384x_authenticateStation_data_t;

Total size: 10

typedef struct hfa384x_AuthRequest {
u8 sta_addr[ETH_ALEN];                          /* 0    6 */
u16 algorithm;                                  /* 6    2 */
} __packed hfa384x_AuthReq_t;
Total size: 8

Signed-off-by: Ioana Ciornei <ciorneiioana@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wlan-ng/prism2sta.c

index 854571fcfee0d6058cc514d848c232e12a3dffbb..ddb294e7044ff1a9e0cd614eb965551f27aab35f 100644 (file)
@@ -59,6 +59,7 @@
 #include <linux/netdevice.h>
 #include <linux/workqueue.h>
 #include <linux/byteorder/generic.h>
+#include <linux/etherdevice.h>
 
 #include <linux/io.h>
 #include <linux/delay.h>
@@ -1544,7 +1545,7 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev,
         ** authentication.
         */
 
-       memcpy(rec.address, inf->info.authreq.sta_addr, ETH_ALEN);
+       ether_addr_copy(rec.address, inf->info.authreq.sta_addr);
        rec.status = P80211ENUM_status_unspec_failure;
 
        /*
@@ -1657,8 +1658,8 @@ static void prism2sta_inf_authreq_defer(wlandevice_t *wlandev,
                        if (hw->authlist.cnt >= WLAN_AUTH_MAX) {
                                rec.status = P80211ENUM_status_ap_full;
                        } else {
-                               memcpy(hw->authlist.addr[hw->authlist.cnt],
-                                      rec.address, ETH_ALEN);
+                               ether_addr_copy(hw->authlist.addr[hw->authlist.cnt],
+                                               rec.address);
                                hw->authlist.cnt++;
                                added = 1;
                        }