From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754261AbbHFAfd (ORCPT ); Wed, 5 Aug 2015 20:35:33 -0400 Received: from mail-pd0-f182.google.com ([209.85.192.182]:34889 "EHLO mail-pd0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753196AbbHFAfb (ORCPT ); Wed, 5 Aug 2015 20:35:31 -0400 Message-ID: <55C2AB51.1040409@gmail.com> Date: Wed, 05 Aug 2015 17:33:21 -0700 From: Florian Fainelli User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Stephen Hemminger , Francois Romieu CC: Liviu Dudau , Mirko Lindner , "ryan.harkin@linaro.org" , netdev , lkml Subject: Re: [PATCH] sky2: Add module parameter for passing the MAC address References: <1438789854-29194-1-git-send-email-Liviu.Dudau@arm.com> <20150805094057.59260077@urahara> <20150805171652.GG20890@e106497-lin.cambridge.arm.com> <20150805203342.GA26748@electric-eye.fr.zoreil.com> <20150805161610.3bcdde98@urahara> In-Reply-To: <20150805161610.3bcdde98@urahara> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/08/15 16:16, Stephen Hemminger wrote: > Something like this: > > Subject: [PATCH net-next] sky2: use random address if EEPROM is bad > > On some embedded systems the EEPROM does not contain a valid MAC address. > In that case it is better to fallback to a generated mac address and > let init scripts fix the value later. > > Reported-by: Liviu Dudau > Signed-off-by: Stephen Hemminger > > > --- a/drivers/net/ethernet/marvell/sky2.c 2015-05-21 15:13:03.621126050 -0700 > +++ b/drivers/net/ethernet/marvell/sky2.c 2015-08-05 16:12:38.734534467 -0700 > @@ -4819,6 +4819,16 @@ static struct net_device *sky2_init_netd > memcpy_fromio(dev->dev_addr, hw->regs + B2_MAC_1 + port * 8, > ETH_ALEN); > > + /* if the address is invalid, use a random value */ > + if (!is_valid_ether_addr(dev->dev_addr)) { > + struct sockaddr sa = { AF_UNSPEC }; > + > + netdev_warn(dev, > + "Invalid MAC address defaulting to random\n"); > + sky2_set_mac_address(dev, &sa); > + dev->addr_assign_type |= NET_ADDR_RANDOM; There is a helper for that: eth_hw_addr_random() which sets the addr_assign_type for you and copies the address to dev->dev_addr. -- Florian