net: use eth_hw_addr_random() and reset addr_assign_type
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / net / ethernet / smsc / smsc911x.c
index 24d2df068d717dd2163742dd479c1a97db003235..4a6971027076613f7765a187e2c28eb11df56104 100644 (file)
@@ -1833,6 +1833,7 @@ static int smsc911x_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, ETH_ALEN);
 
        spin_lock_irq(&pdata->mac_lock);
@@ -2374,7 +2375,6 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
 
        dev = alloc_etherdev(sizeof(struct smsc911x_data));
        if (!dev) {
-               pr_warn("Could not allocate device\n");
                retval = -ENOMEM;
                goto out_release_io_1;
        }
@@ -2486,7 +2486,7 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
                                   "Mac Address is read from LAN911x EEPROM");
                } else {
                        /* eeprom values are invalid, generate random MAC */
-                       random_ether_addr(dev->dev_addr);
+                       eth_hw_addr_random(dev);
                        smsc911x_set_hw_mac_address(pdata, dev->dev_addr);
                        SMSC_TRACE(pdata, probe,
                                   "MAC Address is set to random_ether_addr");