diff options
author | 2022-03-27 11:29:07 +0200 | |
---|---|---|
committer | 2022-03-27 11:30:47 +0200 | |
commit | 13afe46537e99157756939d331bebed49169dfc6 (patch) | |
tree | e1a18eba7af39cfdc78f415c67fda2c4fd8c2120 /net-misc/r8168 | |
parent | app-emacs/hl-todo: add 3.4.1 (diff) | |
download | gentoo-13afe46537e99157756939d331bebed49169dfc6.tar.gz gentoo-13afe46537e99157756939d331bebed49169dfc6.tar.bz2 gentoo-13afe46537e99157756939d331bebed49169dfc6.zip |
net-misc/r8168: Fix build with kernel 5.17
Thanks-to: Peter Levine
Closes: https://bugs.gentoo.org/836129
Signed-off-by: Pacho Ramos <pacho@gentoo.org>
Diffstat (limited to 'net-misc/r8168')
-rw-r--r-- | net-misc/r8168/files/r8168-8.049.02-5.17-fix.patch | 70 | ||||
-rw-r--r-- | net-misc/r8168/r8168-8.049.02-r1.ebuild | 7 |
2 files changed, 75 insertions, 2 deletions
diff --git a/net-misc/r8168/files/r8168-8.049.02-5.17-fix.patch b/net-misc/r8168/files/r8168-8.049.02-5.17-fix.patch new file mode 100644 index 000000000000..9e4e77615458 --- /dev/null +++ b/net-misc/r8168/files/r8168-8.049.02-5.17-fix.patch @@ -0,0 +1,70 @@ +PDE_DATA has been replaced with pde_data +netdev->dev_addr is now const and uses assignment helpers like eth_hw_addr_set + +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=359745d +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=48eab83 +https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=adeef3e + +--- a/src/r8168_n.c ++++ b/src/r8168_n.c +@@ -95,6 +95,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" +@@ -563,7 +567,7 @@ + static void rtl8168_down(struct net_device *dev); + + static int rtl8168_set_mac_address(struct net_device *dev, void *p); +-void rtl8168_rar_set(struct rtl8168_private *tp, uint8_t *addr); ++void rtl8168_rar_set(struct rtl8168_private *tp, const uint8_t *addr); + static void rtl8168_desc_addr_fill(struct rtl8168_private *); + static void rtl8168_tx_desc_init(struct rtl8168_private *tp); + static void rtl8168_rx_desc_init(struct rtl8168_private *tp); +@@ -24129,9 +24133,17 @@ + rtl8168_rar_set(tp, mac_addr); + + for (i = 0; i < MAC_ADDR_LEN; i++) { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,17,0) + dev->dev_addr[i] = RTL_R8(tp, MAC0 + i); + tp->org_mac_addr[i] = dev->dev_addr[i]; /* keep the original MAC address */ ++#else ++ mac_addr[i] = RTL_R8(tp, MAC0 + i); ++ tp->org_mac_addr[i] = mac_addr[i]; /* keep the original MAC address */ ++#endif + } ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0) ++ eth_hw_addr_set(dev, mac_addr); ++#endif + #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13) + memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); + #endif +@@ -24159,9 +24171,11 @@ + return -EADDRNOTAVAIL; + + spin_lock_irqsave(&tp->lock, flags); +- ++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,17,0) + memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); +- ++#else ++ eth_hw_addr_set(dev, addr->sa_data); ++#endif + rtl8168_rar_set(tp, dev->dev_addr); + + spin_unlock_irqrestore(&tp->lock, flags); +@@ -24177,7 +24191,7 @@ + *****************************************************************************/ + void + rtl8168_rar_set(struct rtl8168_private *tp, +- uint8_t *addr) ++ const uint8_t *addr) + { + uint32_t rar_low = 0; + uint32_t rar_high = 0; diff --git a/net-misc/r8168/r8168-8.049.02-r1.ebuild b/net-misc/r8168/r8168-8.049.02-r1.ebuild index 2f271eb31f74..6686979b10d9 100644 --- a/net-misc/r8168/r8168-8.049.02-r1.ebuild +++ b/net-misc/r8168/r8168-8.049.02-r1.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit linux-info linux-mod @@ -24,6 +24,9 @@ IUSE="use-firmware" CONFIG_CHECK="~!R8169" WARNING_R8169="CONFIG_R8169 is enabled. ${P} will not be loaded unless kernel driver Realtek 8169 PCI Gigabit Ethernet (CONFIG_R8169) is DISABLED." +PATCHES=( + "${FILESDIR}/r8168-8.049.02-5.17-fix.patch" +) pkg_setup() { linux-mod_pkg_setup BUILD_PARAMS="KERNELDIR=${KV_DIR}" |