ethernet: use eth_hw_addr_set() in unmaintained drivers
[linux-2.6-block.git] / drivers / net / ethernet / davicom / dm9000.c
index e842de6f66356b2736cadbef776264afbc5eaff9..0985ab216566b10cea9275ebf0bb45c485d49f0a 100644 (file)
@@ -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)) {