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.
Convert usb drivers from memcpy(... ETH_ADDR) to eth_hw_addr_set():
  @@
  expression dev, np;
  @@
  - memcpy(dev->dev_addr, np, ETH_ALEN)
  + eth_hw_addr_set(dev, np)
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
        if (!is_valid_ether_addr(addr->sa_data))
                return -EADDRNOTAVAIL;
 
-       memcpy(net->dev_addr, addr->sa_data, ETH_ALEN);
+       eth_hw_addr_set(net, addr->sa_data);
 
        /* We use the 20 byte dev->data
         * for our 6 byte mac buffer
 
 static void asix_set_netdev_dev_addr(struct usbnet *dev, u8 *addr)
 {
        if (is_valid_ether_addr(addr)) {
-               memcpy(dev->net->dev_addr, addr, ETH_ALEN);
+               eth_hw_addr_set(dev->net, addr);
        } else {
                netdev_info(dev->net, "invalid hw address, using random\n");
                eth_hw_addr_random(dev->net);
 
                ret = -EIO;
                goto free;
        }
-       memcpy(dev->net->dev_addr, buf, ETH_ALEN);
+       eth_hw_addr_set(dev->net, buf);
 
        dev->net->netdev_ops = &ax88172a_netdev_ops;
        dev->net->ethtool_ops = &ax88172a_ethtool_ops;
 
        if (!is_valid_ether_addr(addr->sa_data))
                return -EADDRNOTAVAIL;
 
-       memcpy(net->dev_addr, addr->sa_data, ETH_ALEN);
+       eth_hw_addr_set(net, addr->sa_data);
 
        /* Set the MAC address */
        ret = ax88179_write_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID, ETH_ALEN,
        }
 
        if (is_valid_ether_addr(mac)) {
-               memcpy(dev->net->dev_addr, mac, ETH_ALEN);
+               eth_hw_addr_set(dev->net, mac);
        } else {
                netdev_info(dev->net, "invalid MAC address, using random\n");
                eth_hw_addr_random(dev->net);
 
         * Overwrite the auto-generated address only with good ones.
         */
        if (is_valid_ether_addr(mac))
-               memcpy(dev->net->dev_addr, mac, ETH_ALEN);
+               eth_hw_addr_set(dev->net, mac);
        else {
                printk(KERN_WARNING
                        "dm9601: No valid MAC address in EEPROM, using %pM\n",
 
                        __func__, retval);
                retval = -EINVAL;
        } else {
-               memcpy(net->dev_addr, dev->ctrl_buf, ETH_ALEN);
+               eth_hw_addr_set(net, dev->ctrl_buf);
                retval = 0;
        }
 
 
        if (status)
                return status;
 
-       memcpy(dev->net->dev_addr, ethernet_addr, ETH_ALEN);
+       eth_hw_addr_set(dev->net, ethernet_addr);
 
        return status;
 }
 
        if (!is_valid_ether_addr(addr->sa_data))
                return -EADDRNOTAVAIL;
 
-       memcpy(net->dev_addr, addr->sa_data, ETH_ALEN);
+       eth_hw_addr_set(net, addr->sa_data);
 
        /* We use the 20 byte dev->data
         * for our 6 byte mac buffer