From: Jingoo Han <jg1.han@samsung.com>
To: "'Joel Pelaez Jorge'" <joelpelaez@gmail.com>
Cc: "'Greg Kroah-Hartman'" <gregkh@linuxfoundation.org>,
"'Joe Perches'" <joe@perches.com>,
"'Rashika Kheria'" <rashika.kheria@gmail.com>,
"'Peter P Waskiewicz Jr'" <peter.p.waskiewicz.jr@intel.com>,
linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org,
"'Wei Yongjun'" <yongjun_wei@trendmicro.com.cn>,
"'Dan Carpenter'" <dan.carpenter@oracle.com>,
"'Jingoo Han'" <jg1.han@samsung.com>
Subject: Re: [PATCH] staging: slicoss: Fix prefer ether_addr_copy over memcpy
Date: Tue, 18 Mar 2014 14:49:15 +0900 [thread overview]
Message-ID: <000101cf426d$cba30240$62e906c0$%han@samsung.com> (raw)
In-Reply-To: <5327D3C6.70400@gmail.com>
On Tuesday, March 18, 2014 2:04 PM, Joel Pelaez Jorge wrote:
>
> This patch fixes the following checkpatch.pl issues caused by the new
> function: ether_addr_copy
>
> Signed-off-by: Joel Pelaez Jorge <joelpelaez@gmail.com>
> ---
> drivers/staging/slicoss/slicoss.c | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/staging/slicoss/slicoss.c
> b/drivers/staging/slicoss/slicoss.c
> index 12aafe3..0e0e374 100644
> --- a/drivers/staging/slicoss/slicoss.c
> +++ b/drivers/staging/slicoss/slicoss.c
> @@ -581,15 +581,15 @@ static void slic_adapter_set_hwaddr(struct adapter
> *adapter)
> struct sliccard *card = adapter->card;
>
> if ((adapter->card) && (card->config_set)) {
> - memcpy(adapter->macaddr,
> - card->config.MacInfo[adapter->functionnumber].macaddrA,
> - sizeof(struct slic_config_mac));
> + ether_addr_copy(adapter->macaddr,
> + card->config.MacInfo[adapter->functionnumber]
> + .macaddrA);
As declared in ./include/linux/etherdevice.h,
Copied size should be a six-byte.
static inline void ether_addr_copy(u8 *dst, const u8 *src)
{
#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
*(u32 *)dst = *(const u32 *)src;
*(u16 *)(dst + 4) = *(const u16 *)(src + 4);
#else
u16 *a = (u16 *)dst;
const u16 *b = (const u16 *)src;
a[0] = b[0];
a[1] = b[1];
a[2] = b[2];
#endif
}
In this case, sizeof(struct slic_config_mac) will be 6 byte,
as below. So, it looks good.
./drivers/staging/slicoss/slichw.h
struct slic_config_mac {
u8 macaddrA[6];
};
> if (is_zero_ether_addr(adapter->currmacaddr))
> - memcpy(adapter->currmacaddr, adapter->macaddr,
> - ETH_ALEN);
> + ether_addr_copy(adapter->currmacaddr,
> + adapter->macaddr);
> if (adapter->netdev)
> - memcpy(adapter->netdev->dev_addr, adapter->currmacaddr,
> - ETH_ALEN);
> + ether_addr_copy(adapter->netdev->dev_addr,
> + adapter->currmacaddr);
> }
> }
ETH_ALEN is defined as 6. It looks good, too.
./include/uapi/linux/if_ether.h
#define ETH_ALEN 6
>
> @@ -810,8 +810,8 @@ static int slic_mac_set_address(struct net_device
> *dev, void *ptr)
> if (!is_valid_ether_addr(addr->sa_data))
> return -EINVAL;
>
> - memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
> - memcpy(adapter->currmacaddr, addr->sa_data, dev->addr_len);
> + ether_addr_copy(dev->dev_addr, addr->sa_data);
> + ether_addr_copy(adapter->currmacaddr, addr->sa_data);
By the way, I am wondering if 'dev->addr_len' is 6 bytes.
Is there anyone who can confirm it?
If nobody can confirm 'dev->addr_len' is 6 bytes, it should
not be changed to 'ether_addr_copy()'.
Best regards,
Jingoo Han
>
> slic_config_set(adapter, true);
> return 0;
> @@ -2313,7 +2313,7 @@ static int slic_mcast_add_list(struct adapter
> *adapter, char *address)
> if (mcaddr == NULL)
> return 1;
>
> - memcpy(mcaddr->address, address, ETH_ALEN);
> + ether_addr_copy(mcaddr->address, address);
>
> mcaddr->next = adapter->mcastaddrs;
> adapter->mcastaddrs = mcaddr;
> --
> 1.7.10.4
next prev parent reply other threads:[~2014-03-18 5:49 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-18 5:04 Joel Pelaez Jorge
2014-03-18 5:49 ` Jingoo Han [this message]
2014-03-18 23:08 ` Joel Pelaez Jorge
-- strict thread matches above, loose matches on Subject: below --
2014-03-18 3:17 Joel Pelaez Jorge
2014-03-18 3:38 ` Jingoo Han
2014-03-18 3:48 ` Joe Perches
2014-03-18 20:06 ` Greg Kroah-Hartman
2014-03-18 1:32 Joel Peláez Jorge
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='000101cf426d$cba30240$62e906c0$%han@samsung.com' \
--to=jg1.han@samsung.com \
--cc=dan.carpenter@oracle.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=joe@perches.com \
--cc=joelpelaez@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peter.p.waskiewicz.jr@intel.com \
--cc=rashika.kheria@gmail.com \
--cc=yongjun_wei@trendmicro.com.cn \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®