If we just want to have the address field full of zeros during the
driver probe, is there a reason we should zero it explicitly here?
When the 'struct net_device' is first allocated using
alloc_etherdev(), the dev_addr field is explicitly set to zeros (in
the subfunction dev_addr_init() in net/core/dev_addr_lists.c), so it
should be zeroed already at this point in the code.

Thank you,
Quytelda Kahja

On Wed, Mar 28, 2018 at 11:02 PM, Joe Perches <j...@perches.com> wrote:
> 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);
>
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to