au1000_eth: use eth_hw_addr_random() instead of random_ether_addr()
authorDanny Kukawka <danny.kukawka@bisect.de>
Fri, 17 Feb 2012 05:43:22 +0000 (05:43 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Feb 2012 20:52:30 +0000 (15:52 -0500)
Use eth_hw_addr_random() instead of calling random_ether_addr()
to set addr_assign_type correctly to NET_ADDR_RANDOM.

v2: adapt to eth_hw_addr_random()

Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amd/au1000_eth.c

index c1dfdc8b7079b27d09950981be754b7acde823e8..397596b078d9415d7b3431f78b140542da88e2be 100644 (file)
@@ -1129,9 +1129,6 @@ static int __devinit au1000_probe(struct platform_device *pdev)
 
        au1000_setup_hw_rings(aup, aup->macdma);
 
-       /* set a random MAC now in case platform_data doesn't provide one */
-       random_ether_addr(dev->dev_addr);
-
        writel(0, aup->enable);
        aup->mac_enabled = 0;
 
@@ -1141,8 +1138,12 @@ static int __devinit au1000_probe(struct platform_device *pdev)
                                        " PHY search on MAC0\n");
                aup->phy1_search_mac0 = 1;
        } else {
-               if (is_valid_ether_addr(pd->mac))
+               if (is_valid_ether_addr(pd->mac)) {
                        memcpy(dev->dev_addr, pd->mac, 6);
+               } else {
+                       /* Set a random MAC since no valid provided by platform_data. */
+                       eth_hw_addr_random(dev);
+               }
 
                aup->phy_static_config = pd->phy_static_config;
                aup->phy_search_highest_addr = pd->phy_search_highest_addr;