|
@@ -1259,10 +1259,10 @@ static int emac_dev_setmac_addr(struct net_device *ndev, void *addr)
|
|
|
/* Store mac addr in priv and rx channel and set it in EMAC hw */
|
|
|
memcpy(priv->mac_addr, sa->sa_data, ndev->addr_len);
|
|
|
memcpy(ndev->dev_addr, sa->sa_data, ndev->addr_len);
|
|
|
+ ndev->addr_assign_type &= ~NET_ADDR_RANDOM;
|
|
|
|
|
|
/* MAC address is configured only after the interface is enabled. */
|
|
|
if (netif_running(ndev)) {
|
|
|
- memcpy(priv->mac_addr, sa->sa_data, ndev->addr_len);
|
|
|
emac_setmac(priv, EMAC_DEF_RX_CH, priv->mac_addr);
|
|
|
}
|
|
|
|
|
@@ -1896,7 +1896,8 @@ static int __devinit davinci_emac_probe(struct platform_device *pdev)
|
|
|
|
|
|
if (!is_valid_ether_addr(priv->mac_addr)) {
|
|
|
/* Use random MAC if none passed */
|
|
|
- random_ether_addr(priv->mac_addr);
|
|
|
+ eth_hw_addr_random(ndev);
|
|
|
+ memcpy(priv->mac_addr, ndev->dev_addr, ndev->addr_len);
|
|
|
dev_warn(&pdev->dev, "using random MAC addr: %pM\n",
|
|
|
priv->mac_addr);
|
|
|
}
|