usb: gadget: u_ether: use eth_hw_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Tue, 19 Oct 2021 17:21:24 +0000 (10:21 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Oct 2021 17:31:50 +0000 (19:31 +0200)
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.

Reviewed-by: Maciej Żenczykowski <maze@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/r/20211019172124.1413620-1-kuba@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/u_ether.c

index 85a3f6d..e0ad5ae 100644 (file)
@@ -754,6 +754,7 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g,
        struct eth_dev          *dev;
        struct net_device       *net;
        int                     status;
+       u8                      addr[ETH_ALEN];
 
        net = alloc_etherdev(sizeof *dev);
        if (!net)
@@ -773,9 +774,10 @@ struct eth_dev *gether_setup_name(struct usb_gadget *g,
        dev->qmult = qmult;
        snprintf(net->name, sizeof(net->name), "%s%%d", netname);
 
-       if (get_ether_addr(dev_addr, net->dev_addr))
+       if (get_ether_addr(dev_addr, addr))
                dev_warn(&g->dev,
                        "using random %s ethernet address\n", "self");
+       eth_hw_addr_set(net, addr);
        if (get_ether_addr(host_addr, dev->host_mac))
                dev_warn(&g->dev,
                        "using random %s ethernet address\n", "host");