diff options
Diffstat (limited to 'drivers/net/ethernet/calxeda/xgmac.c')
-rw-r--r-- | drivers/net/ethernet/calxeda/xgmac.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/calxeda/xgmac.c b/drivers/net/ethernet/calxeda/xgmac.c index 1fce186a9031..11f667f6131a 100644 --- a/drivers/net/ethernet/calxeda/xgmac.c +++ b/drivers/net/ethernet/calxeda/xgmac.c | |||
@@ -1012,7 +1012,7 @@ static int xgmac_open(struct net_device *dev) | |||
1012 | * address using the following linux command: | 1012 | * address using the following linux command: |
1013 | * ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx */ | 1013 | * ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx */ |
1014 | if (!is_valid_ether_addr(dev->dev_addr)) { | 1014 | if (!is_valid_ether_addr(dev->dev_addr)) { |
1015 | random_ether_addr(dev->dev_addr); | 1015 | eth_hw_addr_random(dev); |
1016 | netdev_dbg(priv->dev, "generated random MAC address %pM\n", | 1016 | netdev_dbg(priv->dev, "generated random MAC address %pM\n", |
1017 | dev->dev_addr); | 1017 | dev->dev_addr); |
1018 | } | 1018 | } |
@@ -1482,6 +1482,7 @@ static int xgmac_set_mac_address(struct net_device *dev, void *p) | |||
1482 | if (!is_valid_ether_addr(addr->sa_data)) | 1482 | if (!is_valid_ether_addr(addr->sa_data)) |
1483 | return -EADDRNOTAVAIL; | 1483 | return -EADDRNOTAVAIL; |
1484 | 1484 | ||
1485 | dev->addr_assign_type &= ~NET_ADDR_RANDOM; | ||
1485 | memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); | 1486 | memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); |
1486 | 1487 | ||
1487 | xgmac_set_mac_addr(ioaddr, dev->dev_addr, 0); | 1488 | xgmac_set_mac_addr(ioaddr, dev->dev_addr, 0); |