Re: [PATCH 1/9] staging: ks7010: Replace manual array copy with ether_addr_copy().
From: Joe Perches
Date: Thu Mar 29 2018 - 02:02:34 EST
On Wed, 2018-03-28 at 22:51 -0700, Quytelda Kahja wrote:
> Copying the dummy HW address into the struct net_device doesn't need
> to be done byte by byte; use ether_addr_copy() instead.
> Additionally, dev->dev_addr is not eight bytes long.
> ether_setup() sets the dev->addr_len to ETH_ALEN (defined as 6)
> in the net core code.
[]
> diff --git a/drivers/staging/ks7010/ks_wlan_net.c b/drivers/staging/ks7010/ks_wlan_net.c
[]
> @@ -2900,15 +2900,7 @@ int ks_wlan_net_start(struct net_device *dev)
> timer_setup(&update_phyinfo_timer, ks_wlan_update_phyinfo_timeout, 0);
>
> /* dummy address set */
> - memcpy(priv->eth_addr, dummy_addr, ETH_ALEN);
why remove the copy of dummy_addr into priv->eth_addr ?
Also, dummy_addr could be removed and eth_zero_addr()
used instead.
> - dev->dev_addr[0] = priv->eth_addr[0];
> - dev->dev_addr[1] = priv->eth_addr[1];
> - dev->dev_addr[2] = priv->eth_addr[2];
> - dev->dev_addr[3] = priv->eth_addr[3];
> - dev->dev_addr[4] = priv->eth_addr[4];
> - dev->dev_addr[5] = priv->eth_addr[5];
> - dev->dev_addr[6] = 0x00;
> - dev->dev_addr[7] = 0x00;
> + ether_addr_copy(dev->dev_addr, priv->eth_addr);
Perhaps
eth_zero_addr(priv->eth_addr);
eth_zero_addr(dev->dev_addr);