X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=drivers%2Fnet%2Fethernet%2Fdavicom%2Fdm9000.c;h=0985ab216566b10cea9275ebf0bb45c485d49f0a;hb=4abd7cffc09a38015fa14a22471e3de48a4ca032;hp=e842de6f66356b2736cadbef776264afbc5eaff9;hpb=cc09ee80c3b18ae1a897a30a17fe710b2b2f620a;p=linux-2.6-block.git diff --git a/drivers/net/ethernet/davicom/dm9000.c b/drivers/net/ethernet/davicom/dm9000.c index e842de6f6635..0985ab216566 100644 --- a/drivers/net/ethernet/davicom/dm9000.c +++ b/drivers/net/ethernet/davicom/dm9000.c @@ -1425,6 +1425,7 @@ dm9000_probe(struct platform_device *pdev) enum of_gpio_flags flags; struct regulator *power; bool inv_mac_addr = false; + u8 addr[ETH_ALEN]; power = devm_regulator_get(dev, "vcc"); if (IS_ERR(power)) { @@ -1666,11 +1667,12 @@ dm9000_probe(struct platform_device *pdev) /* try reading the node address from the attached EEPROM */ for (i = 0; i < 6; i += 2) - dm9000_read_eeprom(db, i / 2, ndev->dev_addr+i); + dm9000_read_eeprom(db, i / 2, addr + i); + eth_hw_addr_set(ndev, addr); if (!is_valid_ether_addr(ndev->dev_addr) && pdata != NULL) { mac_src = "platform data"; - memcpy(ndev->dev_addr, pdata->dev_addr, ETH_ALEN); + eth_hw_addr_set(ndev, pdata->dev_addr); } if (!is_valid_ether_addr(ndev->dev_addr)) { @@ -1678,7 +1680,8 @@ dm9000_probe(struct platform_device *pdev) mac_src = "chip"; for (i = 0; i < 6; i++) - ndev->dev_addr[i] = ior(db, i+DM9000_PAR); + addr[i] = ior(db, i + DM9000_PAR); + eth_hw_addr_set(ndev, pdata->dev_addr); } if (!is_valid_ether_addr(ndev->dev_addr)) {