Re: [PATCH 1/3] Staging: rtl8712: Replace memcpy by ether_addr_copy

Larry Finger
2015-09-06T19:37:31Z

> This patch replaces memcpy by ethr_addr_copy
>
> The change was made using Coccinelle
>
> @@ expression e1, e2; @@
> - memcpy(e1, e2, ETH_ALEN);
> + ether_addr_copy(e1, e2);
>
> Signed-off-by: Shraddha Barke <shraddha.6596@gmail.com>
> ---
> drivers/staging/rtl8712/rtl871x_mp_ioctl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Your commit message has a typo.

More seriously, ether_addr_copy() requires that both arguments be u16 aligned.
This condition is not hard to meet, but I see no indication in your commit
message that you have checked this requirement. As a result, I must NACK this patch.

Coccinelle is a wonderful tool, but the user must exercise judgment when
applying the results.

Larry

Larry

>
> diff --git a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c
> index 77f01bf..76c1cfe 100644
> --- a/drivers/staging/rtl8712/rtl871x_mp_ioctl.c
> +++ b/drivers/staging/rtl8712/rtl871x_mp_ioctl.c
> @@ -167,7 +167,7 @@ static int mp_start_test(struct _adapter *padapter)
> int res = _SUCCESS;
>
> /* 3 1. initialize a new struct wlan_bssid_ex */
> - memcpy(bssid.MacAddress, pmppriv->network_macaddr, ETH_ALEN);
> + ether_addr_copy(bssid.MacAddress, pmppriv->network_macaddr);
> bssid.Ssid.SsidLength = 16;
> memcpy(bssid.Ssid.Ssid, (unsigned char *)"mp_pseudo_adhoc",
> bssid.Ssid.SsidLength);
>