summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlois Nespor2017-12-23 09:42:37 +0100
committerAlois Nespor2017-12-23 09:42:37 +0100
commitbe057a5dcad3d379795c5082b9042e558130f5c3 (patch)
treece74410e3527a51ed67a538c41d20df72f293bd2
parent0c60aecd8eb9db580933d7b5846f56ea65a9dd74 (diff)
downloadaur-be057a5dcad3d379795c5082b9042e558130f5c3.tar.gz
Prepare for kernel 4.15+, dropped setup_timer, thanks DGdev91!
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD17
-rw-r--r--linux-4.15.patch94
3 files changed, 107 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ba2d207702b8..aff079e6ac90 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Fri Sep 22 13:43:27 UTC 2017
+# Sat Dec 23 08:42:28 UTC 2017
pkgbase = r8168-dkms
pkgdesc = A kernel module for Realtek 8168 network cards
pkgver = 8.045.08
- pkgrel = 1
+ pkgrel = 2
url = http://www.realtek.com.tw
install = r8168-dkms.install
arch = i686
@@ -17,8 +17,10 @@ pkgbase = r8168-dkms
conflicts = r8168
source = http://12244.wpc.azureedge.net/8012244/drivers/rtdrivers/cn/nic/0010-r8168-8.045.08.tar.bz2
source = dkms.conf
+ source = linux-4.15.patch
sha256sums = 29a17aa12b80786cf016799bbe01da8fdd8ee0a4e90b18e740935d81046ec74d
sha256sums = 260d8142e944f3144cbc704534e662d427318d8b32dc7a2852a855be72e8d763
+ sha256sums = 0a3d99dae38a55fa8456a9883db8a0fd65f7042391daff8b978eced4749e1dc7
pkgname = r8168-dkms
diff --git a/PKGBUILD b/PKGBUILD
index 3ec58388db48..94df451bf12b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
_pkgbase=r8168
pkgname=${_pkgbase}-dkms
pkgver=8.045.08
-pkgrel=1
+pkgrel=2
pkgdesc="A kernel module for Realtek 8168 network cards"
url="http://www.realtek.com.tw"
license=("GPL")
@@ -13,14 +13,14 @@ optdepends=('linux-headers: Needed for build the module for Arch kernel'
'linux-zen-headers: Needed for build the module for ZEN Arch kernel')
#source=(https://github.com/mtorromeo/r8168/archive/$pkgver/r8168-$pkgver.tar.gz
source=(http://12244.wpc.azureedge.net/8012244/drivers/rtdrivers/cn/nic/0010-r8168-8.045.08.tar.bz2
- 'dkms.conf')
-# linux-4.11.patch)
+ dkms.conf
+ linux-4.15.patch)
install=r8168-dkms.install
-#prepare() {
-# cd "r8168-$pkgver"
-# patch -p1 -i "$srcdir/linux-4.11.patch"
-#}
+prepare() {
+ cd "r8168-$pkgver"
+ patch -p1 -i "$srcdir/linux-4.15.patch"
+}
package() {
@@ -35,4 +35,5 @@ package() {
cp -dr --no-preserve='ownership' src "${pkgdir}/usr/src/${_pkgbase}-${pkgver}/src"
}
sha256sums=('29a17aa12b80786cf016799bbe01da8fdd8ee0a4e90b18e740935d81046ec74d'
- '260d8142e944f3144cbc704534e662d427318d8b32dc7a2852a855be72e8d763')
+ '260d8142e944f3144cbc704534e662d427318d8b32dc7a2852a855be72e8d763'
+ '0a3d99dae38a55fa8456a9883db8a0fd65f7042391daff8b978eced4749e1dc7')
diff --git a/linux-4.15.patch b/linux-4.15.patch
new file mode 100644
index 000000000000..290055ef83fd
--- /dev/null
+++ b/linux-4.15.patch
@@ -0,0 +1,94 @@
+diff --git a/src/r8168_n.c b/src/r8168_n.c
+index 4cd540a..e7ee078 100755
+--- a/src/r8168_n.c
++++ b/src/r8168_n.c
+@@ -87,6 +87,8 @@
+ #include <linux/seq_file.h>
+ #endif
+
++unsigned long __devicepointer;
++
+ /* Maximum number of multicast addresses to filter (vs. Rx-all-multicast).
+ The RTL chips use a 64 element hash table based on the Ethernet CRC. */
+ static const int multicast_filter_limit = 32;
+@@ -407,8 +409,14 @@ MODULE_VERSION(RTL8168_VERSION);
+ static void rtl8168_sleep_rx_enable(struct net_device *dev);
+ static void rtl8168_dsm(struct net_device *dev, int dev_state);
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
++static void rtl8168_esd_timer(struct timer_list *timer);
++static void rtl8168_link_timer(struct timer_list *timer);
++#else
+ static void rtl8168_esd_timer(unsigned long __opaque);
+ static void rtl8168_link_timer(unsigned long __opaque);
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
++
+ static void rtl8168_tx_clear(struct rtl8168_private *tp);
+ static void rtl8168_rx_clear(struct rtl8168_private *tp);
+
+@@ -22964,7 +22972,12 @@ static inline void rtl8168_request_esd_timer(struct net_device *dev)
+ struct rtl8168_private *tp = netdev_priv(dev);
+ struct timer_list *timer = &tp->esd_timer;
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
++ __devicepointer = (unsigned long)dev;
++ timer_setup(timer, rtl8168_esd_timer, 0);
++#else
+ setup_timer(timer, rtl8168_esd_timer, (unsigned long)dev);
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
+ mod_timer(timer, jiffies + RTL8168_ESD_TIMEOUT);
+ }
+
+@@ -22978,7 +22991,12 @@ static inline void rtl8168_request_link_timer(struct net_device *dev)
+ struct rtl8168_private *tp = netdev_priv(dev);
+ struct timer_list *timer = &tp->link_timer;
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
++ __devicepointer = (unsigned long)dev;
++ timer_setup(timer, rtl8168_link_timer, 0);
++#else
+ setup_timer(timer, rtl8168_link_timer, (unsigned long)dev);
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
+ mod_timer(timer, jiffies + RTL8168_LINK_TIMEOUT);
+ }
+
+@@ -24717,12 +24735,19 @@ err_out:
+ #define PCI_DEVICE_SERIAL_NUMBER (0x0164)
+
+ static void
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
++rtl8168_esd_timer(struct timer_list *timer)
++{
++ struct net_device *dev = (struct net_device *)__devicepointer;
++ struct rtl8168_private *tp = netdev_priv(dev);
++#else
+ rtl8168_esd_timer(unsigned long __opaque)
+ {
+ struct net_device *dev = (struct net_device *)__opaque;
+ struct rtl8168_private *tp = netdev_priv(dev);
+- struct pci_dev *pdev = tp->pci_dev;
+ struct timer_list *timer = &tp->esd_timer;
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
++ struct pci_dev *pdev = tp->pci_dev;
+ unsigned long timeout = RTL8168_ESD_TIMEOUT;
+ unsigned long flags;
+ u8 cmd;
+@@ -24856,11 +24881,18 @@ rtl8168_esd_timer(unsigned long __opaque)
+ }
+
+ static void
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
++rtl8168_link_timer(struct timer_list *timer)
++{
++ struct net_device *dev = (struct net_device *)__devicepointer;
++ struct rtl8168_private *tp = netdev_priv(dev);
++#else
+ rtl8168_link_timer(unsigned long __opaque)
+ {
+ struct net_device *dev = (struct net_device *)__opaque;
+ struct rtl8168_private *tp = netdev_priv(dev);
+ struct timer_list *timer = &tp->link_timer;
++#endif//LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)
+ unsigned long flags;
+
+ spin_lock_irqsave(&tp->lock, flags); \ No newline at end of file