All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jagan Teki <jteki@openedev.com>
To: linux-kernel@vger.kernel.org
Cc: devel@driverdev.osuosl.org, Jagan Teki <jteki@openedev.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Larry Finger <Larry.Finger@lwfinger.net>,
	Florian Schilhabel <florian.c.schilhabel@googlemail.com>
Subject: [PATCH v2] staging: rtl8712: Use ether_addr_copy() instead of memcpy()
Date: Mon, 18 May 2015 19:47:06 +0530	[thread overview]
Message-ID: <1431958626-4345-1-git-send-email-jteki@openedev.com> (raw)

Fixes Warning encounter this by applying checkpatch.pl against this file:
Prefer ether_addr_copy() over memcpy() if the Ethernet addresses
are __aligned(2)

pahole output for respective structures:
- 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 */
};

- padapter->eeprompriv.mac_addr
struct _adapter {
	struct dvobj_priv          dvobjpriv;            /*     0    40 */
	struct mlme_priv           mlmepriv;             /*    40  1560 */
	/* --- cacheline 25 boundary (1600 bytes) --- */
	struct cmd_priv            cmdpriv;              /*  1600   136 */
	/* --- cacheline 27 boundary (1728 bytes) was 8 bytes ago --- */
	struct evt_priv            evtpriv;              /*  1736    96 */
	/* --- cacheline 28 boundary (1792 bytes) was 40 bytes ago --- */
	struct io_queue *          pio_queue;            /*  1832     8 */
	struct xmit_priv           xmitpriv;             /*  1840   912 */
	/* --- cacheline 43 boundary (2752 bytes) --- */
	struct recv_priv           recvpriv;             /*  2752  1088 */
	/* --- cacheline 60 boundary (3840 bytes) --- */
	struct sta_priv            stapriv;              /*  3840   672 */
	/* --- cacheline 70 boundary (4480 bytes) was 32 bytes ago --- */
	struct security_priv       securitypriv;         /*  4512  4816 */
	/* --- cacheline 145 boundary (9280 bytes) was 48 bytes ago --- */
	struct registry_priv       registrypriv;         /*  9328   968 */
	/* --- cacheline 160 boundary (10240 bytes) was 56 bytes ago --- */
	struct wlan_acl_pool       acl_list;             /* 10296  1536 */
	/* --- cacheline 184 boundary (11776 bytes) was 56 bytes ago --- */
	struct pwrctrl_priv        pwrctrlpriv;          /* 11832   224 */
	/* --- cacheline 188 boundary (12032 bytes) was 24 bytes ago --- */
	struct eeprom_priv         eeprompriv;           /* 12056   508 */
	........
};

struct eeprom_priv {
	u8                         bautoload_fail_flag;  /*     0     1 */
	u8                         bempty;               /*     1     1 */
	u8                         sys_config;           /*     2     1 */
	u8                         mac_addr[6];          /*     3     6 */
        ......
};

- pnetdev->dev_addr
dev_addr is interface address infor from generic net_device structure
which is properly aligned and have some patches with this change as well.
"staging: rtl8712: fix Prefer ether_addr_copy() over memcpy()"
(sha1: 36e4d8826b317080e283e4edd08bf8d5ac706f38)

Signed-off-by: Jagan Teki <jteki@openedev.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Florian Schilhabel <florian.c.schilhabel@googlemail.com>
---
Changes for v2:
	- Describe a changelog, to prove address are aligned.

 drivers/staging/rtl8712/os_intfs.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c
index 6e776e5..0d27df6 100644
--- a/drivers/staging/rtl8712/os_intfs.c
+++ b/drivers/staging/rtl8712/os_intfs.c
@@ -181,7 +181,7 @@ static int r871x_net_set_mac_address(struct net_device *pnetdev, void *p)
 	struct sockaddr *addr = p;
 
 	if (padapter->bup == false)
-		memcpy(pnetdev->dev_addr, addr->sa_data, ETH_ALEN);
+		ether_addr_copy(pnetdev->dev_addr, addr->sa_data);
 	return 0;
 }
 
@@ -395,8 +395,8 @@ static int netdev_open(struct net_device *pnetdev)
 			goto netdev_open_error;
 		if (r8712_initmac == NULL)
 			/* Use the mac address stored in the Efuse */
-			memcpy(pnetdev->dev_addr,
-				padapter->eeprompriv.mac_addr, ETH_ALEN);
+			ether_addr_copy(pnetdev->dev_addr,
+					padapter->eeprompriv.mac_addr);
 		else {
 			/* We have to inform f/w to use user-supplied MAC
 			 * address.
@@ -412,8 +412,8 @@ static int netdev_open(struct net_device *pnetdev)
 			 * the eeprompriv.mac_addr should store the mac which
 			 * users specify.
 			 */
-			memcpy(padapter->eeprompriv.mac_addr,
-				pnetdev->dev_addr, ETH_ALEN);
+			ether_addr_copy(padapter->eeprompriv.mac_addr,
+					pnetdev->dev_addr);
 		}
 		if (start_drv_threads(padapter) != _SUCCESS)
 			goto netdev_open_error;
-- 
1.9.1


             reply	other threads:[~2015-05-18 14:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-18 14:17 Jagan Teki [this message]
2015-05-18 14:38 ` [PATCH v2] staging: rtl8712: Use ether_addr_copy() instead of memcpy() Dan Carpenter
2015-05-18 16:04   ` Jagan Teki
2015-05-18 16:08     ` Dan Carpenter

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=1431958626-4345-1-git-send-email-jteki@openedev.com \
    --to=jteki@openedev.com \
    --cc=Larry.Finger@lwfinger.net \
    --cc=devel@driverdev.osuosl.org \
    --cc=florian.c.schilhabel@googlemail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    /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.