+++ /dev/null
---- r8168-8.048.02/src/r8168_n.c~ 2022-04-02 22:25:30.000000000 +0200
-+++ r8168-8.048.02/src/r8168_n.c 2022-04-02 22:28:28.896501079 +0200
-@@ -1615,7 +1615,11 @@
- static int rtl8168_proc_open(struct inode *inode, struct file *file)
- {
- struct net_device *dev = proc_get_parent_data(inode);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,17,0)
- int (*show)(struct seq_file *, void *) = PDE_DATA(inode);
-+#else
-+ int (*show)(struct seq_file *, void *) = pde_data(inode);
-+#endif
-
- return single_open(file, show, dev);
- }
---- r8168-8.049.02/src/r8168_n.c.orig 2022-04-02 23:30:49.000000000 +0200
-+++ r8168-8.049.02/src/r8168_n.c 2022-04-02 23:40:02.568626144 +0200
-@@ -24065,6 +24065,9 @@
- struct rtl8168_private *tp = netdev_priv(dev);
- int i;
- u8 mac_addr[MAC_ADDR_LEN];
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)
-+ u8 addr[ETH_ALEN] __aligned(4);
-+#endif
-
- for (i = 0; i < MAC_ADDR_LEN; i++)
- mac_addr[i] = RTL_R8(tp, MAC0 + i);
-@@ -24132,10 +24135,18 @@
-
- rtl8168_rar_set(tp, mac_addr);
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)
-+ for (i = 0; i < MAC_ADDR_LEN; i++) {
-+ addr[i] = RTL_R8(tp, MAC0 + i);
-+ tp->org_mac_addr[i] = dev->dev_addr[i]; /* keep the original MAC address */
-+ }
-+ eth_hw_addr_set(dev, addr);
-+#else
- 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
+++ /dev/null
---- r8168-8.049.02/src/r8168_n.c~ 2022-05-25 16:48:22.000000000 +0200
-+++ r8168-8.049.02/src/r8168_n.c 2022-05-25 16:56:57.575961627 +0200
-@@ -3665,9 +3665,15 @@
- txd->opts2 = 0;
- while (1) {
- memset(tmpAddr, pattern++, len - 14);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
- pci_dma_sync_single_for_device(tp->pci_dev,
- le64_to_cpu(mapping),
- len, DMA_TO_DEVICE);
-+#else
-+ dma_sync_single_for_device(&tp->pci_dev->dev,
-+ le64_to_cpu(mapping),
-+ len, DMA_TO_DEVICE);
-+#endif
- txd->opts1 = cpu_to_le32(DescOwn | FirstFrag | LastFrag | len);
-
- RTL_W32(tp, RxConfig, RTL_R32(tp, RxConfig) | AcceptMyPhys);
-@@ -3693,7 +3699,11 @@
- if (rx_len == len) {
- dma_sync_single_for_cpu(tp_to_dev(tp), le64_to_cpu(rxd->addr), tp->rx_buf_sz, DMA_FROM_DEVICE);
- i = memcmp(skb->data, rx_skb->data, rx_len);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
- pci_dma_sync_single_for_device(tp->pci_dev, le64_to_cpu(rxd->addr), tp->rx_buf_sz, DMA_FROM_DEVICE);
-+#else
-+ dma_sync_single_for_device(&tp->pci_dev->dev, le64_to_cpu(rxd->addr), tp->rx_buf_sz, DMA_FROM_DEVICE);
-+#endif
- if (i == 0) {
- // dev_printk(KERN_INFO, tp_to_dev(tp), "loopback test finished\n",rx_len,len);
- break;
-@@ -25175,11 +25175,20 @@
-
- if ((sizeof(dma_addr_t) > 4) &&
- use_dac &&
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
- !pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) &&
- !pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))) {
-+#else
-+ !dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) &&
-+ !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
-+#endif
- dev->features |= NETIF_F_HIGHDMA;
- } else {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0)
- rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
-+#else
-+ rc = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
-+#endif
- if (rc < 0) {
- #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0)
- if (netif_msg_probe(tp))
--- /dev/null
+diff -ru r8168-8.052.01/src/r8168_n.c r8168-8.052.01.strcpy/src/r8168_n.c
+--- r8168-8.052.01/src/r8168_n.c 2023-09-26 16:26:06.000000000 +0200
++++ r8168-8.052.01.strcpy/src/r8168_n.c 2024-03-17 00:11:58.529966908 +0100
+@@ -6293,7 +6293,7 @@
+ info->eedump_len = tp->eeprom_len;
+ BUILD_BUG_ON(sizeof(info->fw_version) < sizeof(rtl_fw->version));
+ if (rtl_fw)
+- strlcpy(info->fw_version, rtl_fw->version,
++ strscpy(info->fw_version, rtl_fw->version,
+ sizeof(info->fw_version));
+ }
+
Summary: Linux driver for RTL8111/8168B PCI Express Gigabit Ethernet controllers
Summary(pl.UTF-8): Linuksowy sterownik dla kart sieciowych RTL8111/8168B PCI Express Gigabit Ethernet
Name: %{pname}%{_alt_kernel}
-Version: 8.049.02
+Version: 8.052.01
Release: %{rel}%{?_pld_builder:@%{_kernel_ver_str}}
License: GPL
Group: Base/Kernel
# https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
# unfortunately this download is not DF-friendly.
Source0: %{pname}-%{version}.tar.bz2
-# Source0-md5: 9c2191ca3ff85102bc18a41916eceb8b
-Patch0: kernel-5.17.patch
-Patch1: kernel-5.18.patch
+# Source0-md5: 31d41df8c9234d187d42b881a087d7df
+Patch0: kernel-strcpy.patch
BuildRequires: rpmbuild(macros) >= 1.701
%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}
BuildRoot: %{tmpdir}/%{pname}-%{version}-root-%(id -u -n)
%prep
%setup -q -n %{pname}-%{version}
%patch0 -p1
-%patch1 -p1
%build
%{expand:%build_kernel_packages}