etherdevice: use __dev_addr_set()
authorJakub Kicinski <kuba@kernel.org>
Mon, 4 Oct 2021 23:01:40 +0000 (16:01 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 Oct 2021 11:38:39 +0000 (12:38 +0100)
Andrew points out that eth_hw_addr_set() replaces memcpy()
calls so we can't use ether_addr_copy() which assumes
both arguments are 2-bytes aligned.

Reported-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/etherdevice.h

index 928c411..c58d504 100644 (file)
@@ -308,7 +308,7 @@ static inline void ether_addr_copy(u8 *dst, const u8 *src)
  */
 static inline void eth_hw_addr_set(struct net_device *dev, const u8 *addr)
 {
-       ether_addr_copy(dev->dev_addr, addr);
+       __dev_addr_set(dev, addr, ETH_ALEN);
 }
 
 /**