From: Haneen Mohammed Date: Mon, 16 Mar 2015 15:41:31 +0000 (+0300) Subject: Staging: rtl8712: replace memcpy with ether_addr_copy X-Git-Tag: firefly_0821_release~176^2~1998^2~138^2~360 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e0e982b436cd678dc80a1167a00a8104f54bb761;p=firefly-linux-kernel-4.4.55.git Staging: rtl8712: replace memcpy with ether_addr_copy This patch replace memcpy with ethe_addr_copy to address the following warning generated by checkpatch.pl: ""Prefer ether_addr_copy over memcpy if the Ethernet addresses are __aligned(2)" Follwoing is the output of pahole for the relevant datastructures: 1- for "iwe.u.ap_addr.sa_data" and "wrqu->ap_addr.sa_data" struct sockaddr { sa_family_t sa_family; /* 0 2 */ char sa_data[14]; /* 2 14 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct iw_event { __u16 len; /* 0 2 */ __u16 cmd; /* 2 2 */ /* XXX 4 bytes hole, try to pack */ union iwreq_data u; /* 8 16 */ /* size: 24, cachelines: 1, members: 3 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; 2- for "pnetwork->network.MacAddress" and "pcur_bss->MacAddress" struct wlan_network { struct list_head list; /* 0 16 */ int network_type; /* 16 4 */ int fixed; /* 20 4 */ unsigned int last_scanned; /* 24 4 */ int aid; /* 28 4 */ int join_res; /* 32 4 */ struct ndis_wlan_bssid_ex network; /* 36 884 */ /* --- cacheline 14 boundary (896 bytes) was 24 bytes ago --- */ /* size: 920, cachelines: 15, members: 7 */ /* last cacheline: 24 bytes */ }; struct ndis_wlan_bssid_ex { u32 Length; /* 0 4 */ unsigned char MacAddress[6]; /* 4 6 */ u8 Reserved[2]; /* 10 2 */ struct ndis_802_11_ssid Ssid; /* 12 36 */ u32 Privacy; /* 48 4 */ s32 Rssi; /* 52 4 */ enum NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; /* 56 4 */ struct NDIS_802_11_CONFIGURATION Configuration; /* 60 32 */ /* --- cacheline 1 boundary (64 bytes) was 28 bytes ago --- */ enum NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; /* 92 4 */ NDIS_802_11_RATES_EX SupportedRates; /* 96 16 */ u32 IELength; /* 112 4 */ u8 IEs[768]; /* 116 768 */ /* --- cacheline 13 boundary (832 bytes) was 52 bytes ago --- */ /* size: 884, cachelines: 14, members: 12 */ /* last cacheline: 52 bytes */ }; Signed-off-by: Haneen Mohammed Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c index eacba8c37cc1..81f39c315947 100644 --- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c +++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c @@ -185,7 +185,7 @@ static inline char *translate_scan(struct _adapter *padapter, /* AP MAC address */ iwe.cmd = SIOCGIWAP; iwe.u.ap_addr.sa_family = ARPHRD_ETHER; - memcpy(iwe.u.ap_addr.sa_data, pnetwork->network.MacAddress, ETH_ALEN); + ether_addr_copy(iwe.u.ap_addr.sa_data, pnetwork->network.MacAddress); start = iwe_stream_add_event(info, start, stop, &iwe, IW_EV_ADDR_LEN); /* Add the ESSID */ iwe.cmd = SIOCGIWESSID; @@ -1117,7 +1117,7 @@ static int r8711_wx_get_wap(struct net_device *dev, wrqu->ap_addr.sa_family = ARPHRD_ETHER; if (check_fwstate(pmlmepriv, _FW_LINKED | WIFI_ADHOC_MASTER_STATE | WIFI_AP_STATE)) - memcpy(wrqu->ap_addr.sa_data, pcur_bss->MacAddress, ETH_ALEN); + ether_addr_copy(wrqu->ap_addr.sa_data, pcur_bss->MacAddress); else eth_zero_addr(wrqu->ap_addr.sa_data); return 0;