diff options
author | Alois Nespor | 2017-12-23 09:42:37 +0100 |
---|---|---|
committer | Alois Nespor | 2017-12-23 09:42:37 +0100 |
commit | be057a5dcad3d379795c5082b9042e558130f5c3 (patch) | |
tree | ce74410e3527a51ed67a538c41d20df72f293bd2 | |
parent | 0c60aecd8eb9db580933d7b5846f56ea65a9dd74 (diff) | |
download | aur-be057a5dcad3d379795c5082b9042e558130f5c3.tar.gz |
Prepare for kernel 4.15+, dropped setup_timer, thanks DGdev91!
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 17 | ||||
-rw-r--r-- | linux-4.15.patch | 94 |
3 files changed, 107 insertions, 10 deletions
@@ -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 @@ -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 |