Message ID | 1370020942-8342-1-git-send-email-l.stach@pengutronix.de |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Hello. On 05/31/2013 09:22 PM, Lucas Stach wrote: > From: Pavel Machek <pavel@denx.de> > > If no valid MAC address could be obtained from the hardware, > fall back to a randomly generated one. > > Signed-off-by: Pavel Machek <pavel@denx.de> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de> > --- > drivers/net/ethernet/freescale/fec_main.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c > index 9b0c647..3694a56 100644 > --- a/drivers/net/ethernet/freescale/fec_main.c > +++ b/drivers/net/ethernet/freescale/fec_main.c > @@ -1037,6 +1037,16 @@ static void fec_get_mac(struct net_device *ndev) > iap = &tmpaddr[0]; > } > > + /* > + * 5) random mac address > + */ > + if (!is_valid_ether_addr(iap)) { > + /* Report it and use a random ethernet address instead */ > + netdev_err(ndev, "Invalid MAC address: %pM\n", iap); > + random_ether_addr(iap); eth_hw_addr_random(ndev) might be a bit better -- it classifies the MAC address in 'struct net_device' as random. WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Date: Fri, 31 May 2013 21:57:21 +0400 > eth_hw_addr_random(ndev) might be a bit better -- it classifies > the MAC address in 'struct net_device' as random. Right. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 9b0c647..3694a56 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -1037,6 +1037,16 @@ static void fec_get_mac(struct net_device *ndev) iap = &tmpaddr[0]; } + /* + * 5) random mac address + */ + if (!is_valid_ether_addr(iap)) { + /* Report it and use a random ethernet address instead */ + netdev_err(ndev, "Invalid MAC address: %pM\n", iap); + random_ether_addr(iap); + netdev_info(ndev, "Using random MAC address: %pM\n", iap); + } + memcpy(ndev->dev_addr, iap, ETH_ALEN); /* Adjust MAC if using macaddr */