backports: add eth_hw_addr_inherit()
authorHauke Mehrtens <hauke@hauke-m.de>
Wed, 23 Oct 2013 18:44:33 +0000 (20:44 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Wed, 23 Oct 2013 21:17:10 +0000 (23:17 +0200)
This is needed by drivers/net/wireless/libertas/mesh.c

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
backport/backport-include/linux/etherdevice.h

index 6aff2449c34846e89d5012ee295b88ac7c083f53..bbdee1023fd36ba84fc7907ff740ab4bf44b1803 100644 (file)
@@ -135,4 +135,23 @@ extern int eth_validate_addr(struct net_device *dev);
 #define netdev_hw_addr dev_mc_list
 #endif
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0)
+/**
+ * eth_hw_addr_inherit - Copy dev_addr from another net_device
+ * @dst: pointer to net_device to copy dev_addr to
+ * @src: pointer to net_device to copy dev_addr from
+ *
+ * Copy the Ethernet address from one net_device to another along with
+ * the address attributes (addr_assign_type).
+ */
+static inline void eth_hw_addr_inherit(struct net_device *dst,
+                                      struct net_device *src)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+       dst->addr_assign_type = src->addr_assign_type;
+#endif
+       memcpy(dst->dev_addr, src->dev_addr, ETH_ALEN);
+}
+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) */
+
 #endif /* _BACKPORT_LINUX_ETHERDEVICE_H */