lede/package/lean/r8168/patches/002-r8168-add-support-for-kernel-over-5.10.patch
2022-03-03 10:19:42 +00:00

51 lines
1.6 KiB
Diff

--- a/src/r8168_n.c 2021-07-05 01:30:48.000000000 +0100
+++ b/src/r8168_n.c 2022-02-02 09:13:11.165555448 +0000
@@ -96,6 +96,10 @@
#include <linux/seq_file.h>
#endif
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 17, 0))
+#define PDE_DATA pde_data
+#endif
+
#define FIRMWARE_8168D_1 "rtl_nic/rtl8168d-1.fw"
#define FIRMWARE_8168D_2 "rtl_nic/rtl8168d-2.fw"
#define FIRMWARE_8168E_1 "rtl_nic/rtl8168e-1.fw"
@@ -524,6 +528,12 @@
MODULE_VERSION(RTL8168_VERSION);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 15, 0)
+static inline void dev_addr_mod(struct net_device *dev, unsigned int offset, const void *addr, size_t len) {
+ memcpy(&dev->dev_addr[offset], addr, len);
+}
+#endif
+
static void rtl8168_sleep_rx_enable(struct net_device *dev);
static void rtl8168_dsm(struct net_device *dev, int dev_state);
@@ -24146,11 +24156,13 @@
}
rtl8168_rar_set(tp, mac_addr);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0)
for (i = 0; i < MAC_ADDR_LEN; i++) {
dev->dev_addr[i] = RTL_R8(tp, MAC0 + i);
tp->org_mac_addr[i] = dev->dev_addr[i]; /* keep the original MAC address */
}
+#endif
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
#endif
@@ -24178,9 +24190,9 @@
return -EADDRNOTAVAIL;
spin_lock_irqsave(&tp->lock, flags);
-
- memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
+ dev_addr_mod(dev, 0, addr->sa_data, dev->addr_len);
+ /* memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);*/
rtl8168_rar_set(tp, dev->dev_addr);