apple: macmace: use eth_hw_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Fri, 19 Nov 2021 07:10:31 +0000 (23:10 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Nov 2021 11:05:21 +0000 (11:05 +0000)
Byte by byte assignments.

Fixes build on m68k.

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

index 95d3061..8fcaf16 100644 (file)
@@ -92,7 +92,7 @@ static void mace_reset(struct net_device *dev);
 static irqreturn_t mace_interrupt(int irq, void *dev_id);
 static irqreturn_t mace_dma_intr(int irq, void *dev_id);
 static void mace_tx_timeout(struct net_device *dev, unsigned int txqueue);
-static void __mace_set_address(struct net_device *dev, void *addr);
+static void __mace_set_address(struct net_device *dev, const void *addr);
 
 /*
  * Load a receive DMA channel with a base address and ring length
@@ -197,6 +197,7 @@ static int mace_probe(struct platform_device *pdev)
        unsigned char *addr;
        struct net_device *dev;
        unsigned char checksum = 0;
+       u8 macaddr[ETH_ALEN];
        int err;
 
        dev = alloc_etherdev(PRIV_BYTES);
@@ -229,8 +230,9 @@ static int mace_probe(struct platform_device *pdev)
        for (j = 0; j < 6; ++j) {
                u8 v = bitrev8(addr[j<<4]);
                checksum ^= v;
-               dev->dev_addr[j] = v;
+               macaddr[j] = v;
        }
+       eth_hw_addr_set(dev, macaddr);
        for (; j < 8; ++j) {
                checksum ^= bitrev8(addr[j<<4]);
        }
@@ -315,11 +317,12 @@ static void mace_reset(struct net_device *dev)
  * Load the address on a mace controller.
  */
 
-static void __mace_set_address(struct net_device *dev, void *addr)
+static void __mace_set_address(struct net_device *dev, const void *addr)
 {
        struct mace_data *mp = netdev_priv(dev);
        volatile struct mace *mb = mp->mace;
-       unsigned char *p = addr;
+       const unsigned char *p = addr;
+       u8 macaddr[ETH_ALEN];
        int i;
 
        /* load up the hardware address */
@@ -331,7 +334,8 @@ static void __mace_set_address(struct net_device *dev, void *addr)
                        ;
        }
        for (i = 0; i < 6; ++i)
-               mb->padr = dev->dev_addr[i] = p[i];
+               mb->padr = macaddr[i] = p[i];
+       eth_hw_addr_set(dev, macaddr);
        if (mp->chipid != BROKEN_ADDRCHG_REV)
                mb->iac = 0;
 }