diff -urN r8168-8.038.00.orig/src/r8168_n.c r8168-8.038.00/src/r8168_n.c
--- r8168-8.038.00.orig/src/r8168_n.c	2014-01-08 12:56:43.000000000 +0400
+++ r8168-8.038.00/src/r8168_n.c	2014-10-26 18:28:36.311569403 +0300
@@ -17542,7 +17542,11 @@
 
     RTL_NET_DEVICE_OPS(rtl8168_netdev_ops);
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0)
     SET_ETHTOOL_OPS(dev, &rtl8168_ethtool_ops);
+#else
+    dev->ethtool_ops = &rtl8168_ethtool_ops;
+#endif
 
     dev->watchdog_timeo = RTL8168_TX_TIMEOUT;
     dev->irq = pdev->irq;
@@ -19119,7 +19123,11 @@
 {
     struct rtl8168_private *tp = netdev_priv(dev);
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)
     PREPARE_DELAYED_WORK(&tp->task, task);
+#else
+    INIT_DELAYED_WORK(&tp->task, task);
+#endif
     schedule_delayed_work(&tp->task, 4);
 }
 #endif