ethernet: aeroflex: use eth_hw_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Fri, 15 Oct 2021 22:16:42 +0000 (15:16 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 16 Oct 2021 07:53:45 +0000 (08:53 +0100)
Commit 406f42fa0d3c ("net-next: When a bond have a massive amount
of VLANs...") introduced a rbtree for faster Ethernet address look
up. To maintain netdev->dev_addr in this tree we need to make all
the writes to it got through appropriate helpers.

macaddr[] is a module param, and int, so copy the address into
an array of u8 on the stack, then call eth_hw_addr_set().

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

index cc34eaf0491ff4740804ac5c06146b28219fae74..447dc64a17e5d1aeacbdca7cc77478e76db7d62e 100644 (file)
@@ -1346,6 +1346,7 @@ static int greth_of_probe(struct platform_device *ofdev)
        int i;
        int err;
        int tmp;
+       u8 addr[ETH_ALEN];
        unsigned long timeout;
 
        dev = alloc_etherdev(sizeof(struct greth_private));
@@ -1449,8 +1450,6 @@ static int greth_of_probe(struct platform_device *ofdev)
                        break;
        }
        if (i == 6) {
-               u8 addr[ETH_ALEN];
-
                err = of_get_mac_address(ofdev->dev.of_node, addr);
                if (!err) {
                        for (i = 0; i < 6; i++)
@@ -1464,7 +1463,8 @@ static int greth_of_probe(struct platform_device *ofdev)
        }
 
        for (i = 0; i < 6; i++)
-               dev->dev_addr[i] = macaddr[i];
+               addr[i] = macaddr[i];
+       eth_hw_addr_set(dev, addr);
 
        macaddr[5]++;