--- /dev/null
+diff --git a/src/r8168_n.c b/src/r8168_n.c\r
+index 4cd540a..2dbb726 100755\r
+--- a/src/r8168_n.c\r
++++ b/src/r8168_n.c\r
+@@ -407,8 +407,14 @@ MODULE_VERSION(RTL8168_VERSION);\r
+ static void rtl8168_sleep_rx_enable(struct net_device *dev);\r
+ static void rtl8168_dsm(struct net_device *dev, int dev_state);\r
+ \r
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
++static void rtl8168_esd_timer(struct timer_list *timer);\r
++static void rtl8168_link_timer(struct timer_list *timer);\r
++#else\r
+ static void rtl8168_esd_timer(unsigned long __opaque);\r
+ static void rtl8168_link_timer(unsigned long __opaque);\r
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
++\r
+ static void rtl8168_tx_clear(struct rtl8168_private *tp);\r
+ static void rtl8168_rx_clear(struct rtl8168_private *tp);\r
+ \r
+@@ -22964,7 +22970,11 @@ static inline void rtl8168_request_esd_timer(struct net_device *dev)\r
+ struct rtl8168_private *tp = netdev_priv(dev);\r
+ struct timer_list *timer = &tp->esd_timer;\r
+ \r
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
++ timer_setup(timer, rtl8168_esd_timer, 0);\r
++#else\r
+ setup_timer(timer, rtl8168_esd_timer, (unsigned long)dev);\r
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
+ mod_timer(timer, jiffies + RTL8168_ESD_TIMEOUT);\r
+ }\r
+ \r
+@@ -22978,7 +22988,11 @@ static inline void rtl8168_request_link_timer(struct net_device *dev)\r
+ struct rtl8168_private *tp = netdev_priv(dev);\r
+ struct timer_list *timer = &tp->link_timer;\r
+ \r
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
++ timer_setup(timer, rtl8168_link_timer, 0);\r
++#else\r
+ setup_timer(timer, rtl8168_link_timer, (unsigned long)dev);\r
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
+ mod_timer(timer, jiffies + RTL8168_LINK_TIMEOUT);\r
+ }\r
+ \r
+@@ -24717,12 +24731,19 @@ err_out:\r
+ #define PCI_DEVICE_SERIAL_NUMBER (0x0164)\r
+ \r
+ static void\r
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
++rtl8168_esd_timer(struct timer_list *timer)\r
++{\r
++ struct rtl8168_private *tp = from_timer(tp, timer, esd_timer);\r
++ struct net_device *dev = tp->dev;\r
++#else\r
+ rtl8168_esd_timer(unsigned long __opaque)\r
+ {\r
+ struct net_device *dev = (struct net_device *)__opaque;\r
+ struct rtl8168_private *tp = netdev_priv(dev);\r
+- struct pci_dev *pdev = tp->pci_dev;\r
+ struct timer_list *timer = &tp->esd_timer;\r
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
++ struct pci_dev *pdev = tp->pci_dev;\r
+ unsigned long timeout = RTL8168_ESD_TIMEOUT;\r
+ unsigned long flags;\r
+ u8 cmd;\r
+@@ -24856,11 +24877,18 @@ rtl8168_esd_timer(unsigned long __opaque)\r
+ }\r
+ \r
+ static void\r
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
++rtl8168_link_timer(struct timer_list *timer)\r
++{\r
++ struct rtl8168_private *tp = from_timer(tp, timer, link_timer);\r
++ struct net_device *dev = tp->dev;\r
++#else\r
+ rtl8168_link_timer(unsigned long __opaque)\r
+ {\r
+ struct net_device *dev = (struct net_device *)__opaque;\r
+ struct rtl8168_private *tp = netdev_priv(dev);\r
+ struct timer_list *timer = &tp->link_timer;\r
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)\r
+ unsigned long flags;\r
+ \r
+ spin_lock_irqsave(&tp->lock, flags);
\ No newline at end of file
+++ /dev/null
---- r8168-8.042.00/src/r8168_n.c.orig 2016-08-01 21:20:42.000000000 +0200
-+++ r8168-8.042.00/src/r8168_n.c 2016-08-01 21:32:49.488072441 +0200
-@@ -22800,7 +22800,9 @@
- dev->hw_features &= ~NETIF_F_IPV6_CSUM;
- netif_set_gso_max_size(dev, LSO_32K);
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0)
- dev->gso_min_segs = NIC_MIN_PHYS_BUF_COUNT;
-+#endif
- dev->gso_max_segs = NIC_MAX_PHYS_BUF_COUNT_LSO_64K;
- #endif
- } else {
-@@ -22808,7 +22810,9 @@
- dev->features |= NETIF_F_IPV6_CSUM | NETIF_F_TSO6;
- netif_set_gso_max_size(dev, LSO_64K);
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0)
- dev->gso_min_segs = NIC_MIN_PHYS_BUF_COUNT;
-+#endif
- dev->gso_max_segs = NIC_MAX_PHYS_BUF_COUNT_LSO2;
- #endif
- }
-@@ -24970,7 +24974,11 @@
- wmb();
- txd->opts1 = cpu_to_le32(opts1);
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0)
- dev->trans_start = jiffies;
-+#else
-+ netif_trans_update(dev);
-+#endif
-
- tp->cur_tx += frags + 1;
-
# nothing to be placed to debuginfo package
%define _enable_debug_packages 0
-%define rel 2
+%define rel 1
%define pname r8168
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.042.00
+Version: 8.045.08
Release: %{rel}%{?_pld_builder:@%{_kernel_ver_str}}
License: GPL
Group: Base/Kernel
# http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false
# unfortunately this download is not DF-friendly.
Source0: %{pname}-%{version}.tar.bz2
-# Source0-md5: 2c583809d1ebf26ed7f5e775c83e68e0
-Patch0: linux-4.5.patch
-Patch1: linux-4.7.patch
-Patch2: linux-4.11.patch
+# Source0-md5: 474442fe528aee9bbc3c7e9a19debcb5
+Patch0: kernel-4.15.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
-%patch2 -p1
%build
%{expand:%build_kernel_packages}