net: use eth_hw_addr_random() and reset addr_assign_type
[deliverable/linux.git] / drivers / net / ethernet / calxeda / xgmac.c
index 1fce186a9031db45ada0c6ef553d3013d0866a57..11f667f6131abf97c34faf9f5bac9dec887f17f3 100644 (file)
@@ -1012,7 +1012,7 @@ static int xgmac_open(struct net_device *dev)
         * address using the following linux command:
         *      ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx  */
        if (!is_valid_ether_addr(dev->dev_addr)) {
-               random_ether_addr(dev->dev_addr);
+               eth_hw_addr_random(dev);
                netdev_dbg(priv->dev, "generated random MAC address %pM\n",
                        dev->dev_addr);
        }
@@ -1482,6 +1482,7 @@ static int xgmac_set_mac_address(struct net_device *dev, void *p)
        if (!is_valid_ether_addr(addr->sa_data))
                return -EADDRNOTAVAIL;
 
+       dev->addr_assign_type &= ~NET_ADDR_RANDOM;
        memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
 
        xgmac_set_mac_addr(ioaddr, dev->dev_addr, 0);
This page took 0.025605 seconds and 5 git commands to generate.