8390: wd: use eth_hw_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Fri, 19 Nov 2021 07:10:28 +0000 (23:10 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Nov 2021 11:05:21 +0000 (11:05 +0000)
IO reads, so save to an array then eth_hw_addr_set().

Fixes build on x86 (32bit).

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/8390/wd.c

index 263a942..5b00c45 100644 (file)
@@ -168,6 +168,7 @@ static int __init wd_probe1(struct net_device *dev, int ioaddr)
        int checksum = 0;
        int ancient = 0;                        /* An old card without config registers. */
        int word16 = 0;                         /* 0 = 8 bit, 1 = 16 bit */
+       u8 addr[ETH_ALEN];
        const char *model_name;
        static unsigned version_printed;
        struct ei_device *ei_local = netdev_priv(dev);
@@ -191,7 +192,8 @@ static int __init wd_probe1(struct net_device *dev, int ioaddr)
                netdev_info(dev, version);
 
        for (i = 0; i < 6; i++)
-               dev->dev_addr[i] = inb(ioaddr + 8 + i);
+               addr[i] = inb(ioaddr + 8 + i);
+       eth_hw_addr_set(dev, addr);
 
        netdev_info(dev, "WD80x3 at %#3x, %pM", ioaddr, dev->dev_addr);