smc9194: use eth_hw_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Fri, 19 Nov 2021 07:10:29 +0000 (23:10 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Nov 2021 11:05:21 +0000 (11:05 +0000)
dev_addr is set from IO reads, and broken from a u16 value.

Fixes build on Alpha.

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

index 0ce403f..af661c6 100644 (file)
@@ -856,6 +856,7 @@ static int __init smc_probe(struct net_device *dev, int ioaddr)
        word configuration_register;
        word memory_info_register;
        word memory_cfg_register;
+       u8 addr[ETH_ALEN];
 
        /* Grab the region so that no one else tries to probe our ioports. */
        if (!request_region(ioaddr, SMC_IO_EXTENT, DRV_NAME))
@@ -924,9 +925,10 @@ static int __init smc_probe(struct net_device *dev, int ioaddr)
                word    address;
 
                address = inw( ioaddr + ADDR0 + i  );
-               dev->dev_addr[ i + 1] = address >> 8;
-               dev->dev_addr[ i ] = address & 0xFF;
+               addr[i + 1] = address >> 8;
+               addr[i] = address & 0xFF;
        }
+       eth_hw_addr_set(dev, addr);
 
        /* get the memory information */