Blob Blame History Raw
From: Jakub Kicinski <kuba@kernel.org>
Date: Wed, 13 Oct 2021 13:44:30 -0700
Subject: ethernet: make eth_hw_addr_random() use dev_addr_set()
Patch-mainline: v5.16-rc1
Git-commit: 54f2d8d6ca99a3e24efc9c8b055bbcbe0b583227
References: jsc#PED-1565

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>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 include/linux/etherdevice.h |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/include/linux/etherdevice.h
+++ b/include/linux/etherdevice.h
@@ -262,8 +262,11 @@ static inline void eth_zero_addr(u8 *add
  */
 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);
 }
 
 /**