-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