diff options
Diffstat (limited to 'drivers/net/ethernet/amd/au1000_eth.c')
-rw-r--r-- | drivers/net/ethernet/amd/au1000_eth.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/ethernet/amd/au1000_eth.c b/drivers/net/ethernet/amd/au1000_eth.c index 8b95dd314253..397596b078d9 100644 --- a/drivers/net/ethernet/amd/au1000_eth.c +++ b/drivers/net/ethernet/amd/au1000_eth.c @@ -725,7 +725,7 @@ static int au1000_rx(struct net_device *dev) /* good frame */ frmlen = (status & RX_FRAME_LEN_MASK); frmlen -= 4; /* Remove FCS */ - skb = dev_alloc_skb(frmlen + 2); + skb = netdev_alloc_skb(dev, frmlen + 2); if (skb == NULL) { netdev_err(dev, "Memory squeeze, dropping packet.\n"); dev->stats.rx_dropped++; @@ -1077,7 +1077,6 @@ static int __devinit au1000_probe(struct platform_device *pdev) dev = alloc_etherdev(sizeof(struct au1000_private)); if (!dev) { - dev_err(&pdev->dev, "alloc_etherdev failed\n"); err = -ENOMEM; goto err_alloc; } @@ -1130,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; @@ -1142,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; |