amd: lance: use eth_hw_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Fri, 19 Nov 2021 07:10:19 +0000 (23:10 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Nov 2021 11:05:20 +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/amd/lance.c

index 945bf1d..4620166 100644 (file)
@@ -480,6 +480,7 @@ static int __init lance_probe1(struct net_device *dev, int ioaddr, int irq, int
        unsigned long flags;
        int err = -ENOMEM;
        void __iomem *bios;
+       u8 addr[ETH_ALEN];
 
        /* First we look for special cases.
           Check for HP's on-board ethernet by looking for 'HP' in the BIOS.
@@ -541,7 +542,8 @@ static int __init lance_probe1(struct net_device *dev, int ioaddr, int irq, int
        /* There is a 16 byte station address PROM at the base address.
           The first six bytes are the station address. */
        for (i = 0; i < 6; i++)
-               dev->dev_addr[i] = inb(ioaddr + i);
+               addr[i] = inb(ioaddr + i);
+       eth_hw_addr_set(dev, addr);
        printk("%pM", dev->dev_addr);
 
        dev->base_addr = ioaddr;