File 0006-kni-use-dedicated-function-to-set-MAC-address.patch of Package dpdk.38653
index 0db29a4a6f..3a86d12bbc 100644
Index: dpdk-stable-19.11.10/kernel/linux/kni/compat.h
===================================================================
--- dpdk-stable-19.11.10.orig/kernel/linux/kni/compat.h
+++ dpdk-stable-19.11.10/kernel/linux/kni/compat.h
@@ -141,6 +141,10 @@
#define HAVE_TX_TIMEOUT_TXQUEUE
#endif
+/*#if KERNEL_VERSION(5, 15, 0) <= LINUX_VERSION_CODE*/
+#define HAVE_ETH_HW_ADDR_SET
+/*#endif*/
+
#if KERNEL_VERSION(5, 9, 0) > LINUX_VERSION_CODE
#define HAVE_TSK_IN_GUP
#endif
Index: dpdk-stable-19.11.10/kernel/linux/kni/kni_misc.c
===================================================================
--- dpdk-stable-19.11.10.orig/kernel/linux/kni/kni_misc.c
+++ dpdk-stable-19.11.10/kernel/linux/kni/kni_misc.c
@@ -394,11 +394,16 @@ kni_ioctl_create(struct net *net, uint32
pr_debug("mbuf_size: %u\n", kni->mbuf_size);
/* if user has provided a valid mac address */
- if (is_valid_ether_addr(dev_info.mac_addr))
+ if (is_valid_ether_addr(dev_info.mac_addr)) {
+#ifdef HAVE_ETH_HW_ADDR_SET
+ eth_hw_addr_set(net_dev, dev_info.mac_addr);
+#else
memcpy(net_dev->dev_addr, dev_info.mac_addr, ETH_ALEN);
- else
+#endif
+ } else {
/* Assign random MAC address. */
eth_hw_addr_random(net_dev);
+ }
if (dev_info.mtu)
net_dev->mtu = dev_info.mtu;
Index: dpdk-stable-19.11.10/kernel/linux/kni/kni_net.c
===================================================================
--- dpdk-stable-19.11.10.orig/kernel/linux/kni/kni_net.c
+++ dpdk-stable-19.11.10/kernel/linux/kni/kni_net.c
@@ -752,7 +752,11 @@ kni_net_set_mac(struct net_device *netde
return -EADDRNOTAVAIL;
memcpy(req.mac_addr, addr->sa_data, netdev->addr_len);
+#ifdef HAVE_ETH_HW_ADDR_SET
+ eth_hw_addr_set(netdev, addr->sa_data);
+#else
memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len);
+#endif
kni = netdev_priv(netdev);
ret = kni_net_process_request(kni, &req);