diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2013-06-02 20:38:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-04 20:00:32 -0400 |
commit | ff5b2fabf53426c15a5f041505687f94d1b2109f (patch) | |
tree | 77b814a4b50598ce19b1af1e4e4e70313864024a /drivers/net | |
parent | e768fb292d362ff2742d843e346a10853bde68be (diff) |
net: fec: add fallback to random MAC address
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/freescale/fec_main.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 85a06037b242..a667015be22a 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c | |||
@@ -1038,6 +1038,18 @@ static void fec_get_mac(struct net_device *ndev) | |||
1038 | iap = &tmpaddr[0]; | 1038 | iap = &tmpaddr[0]; |
1039 | } | 1039 | } |
1040 | 1040 | ||
1041 | /* | ||
1042 | * 5) random mac address | ||
1043 | */ | ||
1044 | if (!is_valid_ether_addr(iap)) { | ||
1045 | /* Report it and use a random ethernet address instead */ | ||
1046 | netdev_err(ndev, "Invalid MAC address: %pM\n", iap); | ||
1047 | eth_hw_addr_random(ndev); | ||
1048 | netdev_info(ndev, "Using random MAC address: %pM\n", | ||
1049 | ndev->dev_addr); | ||
1050 | return; | ||
1051 | } | ||
1052 | |||
1041 | memcpy(ndev->dev_addr, iap, ETH_ALEN); | 1053 | memcpy(ndev->dev_addr, iap, ETH_ALEN); |
1042 | 1054 | ||
1043 | /* Adjust MAC if using macaddr */ | 1055 | /* Adjust MAC if using macaddr */ |