X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fnet%2Fmacb.c;h=daba82bbcb5672fad842e135202abae4bed5c878;hb=0bacdf303f72a3ed34252934114bc04e79222687;hp=0a5745a854c7bbbe562a5f4e7b88e464a8891b0d;hpb=9b610fda0df5d0f0b0c64242e37441ad1b384aac;p=linux-2.6 diff --git a/drivers/net/macb.c b/drivers/net/macb.c index 0a5745a854..daba82bbcb 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -80,8 +80,12 @@ static void __init macb_get_hwaddr(struct macb *bp) addr[4] = top & 0xff; addr[5] = (top >> 8) & 0xff; - if (is_valid_ether_addr(addr)) + if (is_valid_ether_addr(addr)) { memcpy(bp->dev->dev_addr, addr, sizeof(addr)); + } else { + dev_info(&bp->pdev->dev, "invalid hw address, using random\n"); + random_ether_addr(bp->dev->dev_addr); + } } static int macb_mdio_read(struct mii_bus *bus, int mii_id, int regnum) @@ -160,9 +164,7 @@ static void macb_handle_link_change(struct net_device *dev) } if (phydev->link != bp->link) { - if (phydev->link) - netif_schedule(dev); - else { + if (!phydev->link) { bp->speed = 0; bp->duplex = -1; }