summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorChocobo12017-01-28 17:32:42 +0800
committerChocobo12017-01-28 17:52:07 +0800
commitbaff0205b892067b01dd1d06d242b6d446c58e9e (patch)
tree8dfe7e64d6e7b6eaa7ac0ecb0a22bd9a470df57f
parentce3f63011fbd05fd6325dea8f6f959a9e4b0683f (diff)
downloadaur-baff0205b892067b01dd1d06d242b6d446c58e9e.tar.gz
upgpkg: igb 5.3.5.4-2
Add kernel4.9.patch
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD13
-rw-r--r--kernel4.9.patch78
3 files changed, 91 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d8f99e5ba2a7..e2e4197375a8 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = igb
pkgdesc = Linux* Base Driver for Intel(R) Ethernet Network Connection
pkgver = 5.3.5.4
- pkgrel = 1
+ pkgrel = 2
url = https://sourceforge.net/projects/e1000/files/igb%20stable/
install = igb.install
arch = i686
@@ -10,7 +10,9 @@ pkgbase = igb
makedepends = linux-headers>=2.6.30
depends = linux>=2.6.30
source = igb-5.3.5.4-src.tar.gz::https://downloads.sourceforge.net/project/e1000/igb%20stable/5.3.5.4/igb-5.3.5.4.tar.gz
+ source = kernel4.9.patch
sha256sums = 804fe3c5c3a65b4ce8681569175b62efd648240f5fbbc349689f14de0d3dee6d
+ sha256sums = c6dc82cf45b09271cae1818130ac215a64d96a5e9237c11f2b5bc757603111a2
pkgname = igb
diff --git a/PKGBUILD b/PKGBUILD
index 81838897e585..145cc472d42a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=igb
pkgver=5.3.5.4
-pkgrel=1
+pkgrel=2
pkgdesc="Linux* Base Driver for Intel(R) Ethernet Network Connection"
arch=('i686' 'x86_64')
url="https://sourceforge.net/projects/e1000/files/igb%20stable/"
@@ -10,10 +10,17 @@ license=('GPL')
depends=('linux>=2.6.30')
makedepends=('linux-headers>=2.6.30')
install=$pkgname.install
-source=("$pkgname-$pkgver-src.tar.gz::https://downloads.sourceforge.net/project/e1000/igb%20stable/$pkgver/$pkgname-$pkgver.tar.gz")
-sha256sums=('804fe3c5c3a65b4ce8681569175b62efd648240f5fbbc349689f14de0d3dee6d')
+source=("$pkgname-$pkgver-src.tar.gz::https://downloads.sourceforge.net/project/e1000/igb%20stable/$pkgver/$pkgname-$pkgver.tar.gz"
+ kernel4.9.patch)
+sha256sums=('804fe3c5c3a65b4ce8681569175b62efd648240f5fbbc349689f14de0d3dee6d'
+ 'c6dc82cf45b09271cae1818130ac215a64d96a5e9237c11f2b5bc757603111a2')
+prepare() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 -i "../kernel4.9.patch"
+}
+
build() {
cd "$srcdir/$pkgname-$pkgver/src"
diff --git a/kernel4.9.patch b/kernel4.9.patch
new file mode 100644
index 000000000000..8026b93df576
--- /dev/null
+++ b/kernel4.9.patch
@@ -0,0 +1,78 @@
+http://dpdk.org/ml/archives/dev/2016-October/049016.html
+
+diff -Naur igb-5.3.5.4-orig/src/igb_main.c igb-5.3.5.4/src/igb_main.c
+--- igb-5.3.5.4-orig/src/igb_main.c 2016-08-26 06:01:30.000000000 +0800
++++ igb-5.3.5.4/src/igb_main.c 2017-01-28 17:26:14.030381667 +0800
+@@ -183,7 +183,11 @@
+ #ifdef IFLA_VF_MAX
+ static int igb_ndo_set_vf_mac(struct net_device *netdev, int vf, u8 *mac);
+ static int igb_ndo_set_vf_vlan(struct net_device *netdev,
+- int vf, u16 vlan, u8 qos);
++#ifdef HAVE_VF_VLAN_PROTO
++ int vf, u16 vlan, u8 qos, __be16 vlan_proto);
++#else
++ int vf, u16 vlan, u8 qos);
++#endif
+ #ifdef HAVE_VF_SPOOFCHK_CONFIGURE
+ static int igb_ndo_set_vf_spoofchk(struct net_device *netdev, int vf,
+ bool setting);
+@@ -6615,7 +6619,11 @@
+ }
+
+ static int igb_ndo_set_vf_vlan(struct net_device *netdev,
+- int vf, u16 vlan, u8 qos)
++#ifdef HAVE_VF_VLAN_PROTO
++ int vf, u16 vlan, u8 qos, __be16 vlan_proto)
++#else
++ int vf, u16 vlan, u8 qos)
++#endif
+ {
+ int err = 0;
+ struct igb_adapter *adapter = netdev_priv(netdev);
+@@ -6624,6 +6632,12 @@
+ if ((vf >= adapter->vfs_allocated_count) || (vlan > VLAN_VID_MASK-1)
+ || (qos > 7))
+ return -EINVAL;
++
++#ifdef HAVE_VF_VLAN_PROTO
++ if (vlan_proto != htons(ETH_P_8021Q))
++ return -EPROTONOSUPPORT;
++#endif
++
+ if (vlan || qos) {
+ err = igb_vlvf_set(adapter, vlan, !!vlan, vf);
+ if (err)
+@@ -6783,7 +6797,12 @@
+ if (adapter->vf_data[vf].pf_vlan)
+ igb_ndo_set_vf_vlan(adapter->netdev, vf,
+ adapter->vf_data[vf].pf_vlan,
+- adapter->vf_data[vf].pf_qos);
++#ifdef HAVE_VF_VLAN_PROTO
++ adapter->vf_data[vf].pf_qos,
++ htons(ETH_P_8021Q));
++#else
++ adapter->vf_data[vf].pf_qos);
++#endif
+ else
+ igb_clear_vf_vfta(adapter, vf);
+ #endif
+diff -Naur igb-5.3.5.4-orig/src/kcompat.h igb-5.3.5.4/src/kcompat.h
+--- igb-5.3.5.4-orig/src/kcompat.h 2016-08-26 06:01:30.000000000 +0800
++++ igb-5.3.5.4/src/kcompat.h 2017-01-28 17:27:25.429396667 +0800
+@@ -4913,6 +4913,7 @@
+ #ifndef skb_vlan_tag_present
+ #define skb_vlan_tag_present vlan_tx_tag_present
+ #endif
++
+ #if RHEL_RELEASE_CODE && (RHEL_RELEASE_CODE > RHEL_RELEASE_VERSION(7,1))
+ #define HAVE_INCLUDE_LINUX_TIMECOUNTER_H
+ #endif
+@@ -5068,4 +5069,8 @@
+ #define HAVE_UDP_ENC_RX_OFFLOAD
+ #endif /* 4.8.0 */
+
++#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0) )
++#define HAVE_VF_VLAN_PROTO
++#endif /* >= 4.9.0 */
++
+ #endif /* _KCOMPAT_H_ */