ethernet: make eth_hw_addr_random() use dev_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Wed, 13 Oct 2021 20:44:30 +0000 (13:44 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 14 Oct 2021 16:22:13 +0000 (09:22 -0700)
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.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/etherdevice.h

index 3cf546d2ffd1ec1a1711e28466c09795734848c6..76f7ff684cbf6160ac5159df3986651a1edfd348 100644 (file)
@@ -269,8 +269,11 @@ static inline void eth_zero_addr(u8 *addr)
  */
 static inline void eth_hw_addr_random(struct net_device *dev)
 {
+       u8 addr[ETH_ALEN];
+
+       eth_random_addr(addr);
+       __dev_addr_set(dev, addr, ETH_ALEN);
        dev->addr_assign_type = NET_ADDR_RANDOM;
-       eth_random_addr(dev->dev_addr);
 }
 
 /**