All of lore.kernel.org
 help / color / mirror / Atom feed
From: Haneen Mohammed <hamohammed.sa@gmail.com>
To: outreachy-kernel@googlegroups.com
Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
Subject: [PATCH] Staging: rtl8712: replace memcpy with ether_addr_copy
Date: Sat, 14 Mar 2015 16:17:04 +0300	[thread overview]
Message-ID: <1426339024-11656-1-git-send-email-hamohammed.sa@gmail.com> (raw)

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 <hamohammed.sa@gmail.com>
---
 drivers/staging/rtl8712/rtl871x_ioctl_linux.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
index eacba8c..81f39c3 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;
-- 
1.9.1



             reply	other threads:[~2015-03-14 21:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-14 13:17 Haneen Mohammed [this message]
2015-03-16 14:47 ` [Outreachy kernel] [PATCH] Staging: rtl8712: replace memcpy with ether_addr_copy Greg KH
2015-03-16 15:41   ` [PATCH v2] " Haneen Mohammed
2015-03-17 15:35     ` [Outreachy kernel] " Jes Sorensen
  -- strict thread matches above, loose matches on Subject: below --
2015-03-14 11:15 [PATCH] Staging: rtl8712: Replace " Vatika Harlalka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1426339024-11656-1-git-send-email-hamohammed.sa@gmail.com \
    --to=hamohammed.sa@gmail.com \
    --cc=outreachy-kernel@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.