]> git.proxmox.com Git - pve-kernel.git/commitdiff
revert igb to 5.3.5.10
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Tue, 5 Dec 2017 12:05:16 +0000 (13:05 +0100)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Tue, 5 Dec 2017 12:05:16 +0000 (13:05 +0100)
because 5.3.5.12 broke JUMBO_FRAMES (again)

Makefile
igb-5.3.5.10.tar.gz [new file with mode: 0644]
igb-5.3.5.12.tar.gz [deleted file]
patches/intel/igb/igb_4.10_max-mtu.patch [new file with mode: 0644]
patches/intel/igb/igb_4.12_compat.patch [new file with mode: 0644]

index c6bcdd883eef49d63d17d1e2b6bb625ad5b8e553..6d6700524ad6aeb49bf92f3cddb6b6c32f321af0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -38,7 +38,7 @@ KERNEL_CFG_ORG=config-${KERNEL_VER}.org
 E1000EDIR=e1000e-3.3.6
 E1000ESRC=${E1000EDIR}.tar.gz
 
-IGBDIR=igb-5.3.5.12
+IGBDIR=igb-5.3.5.10
 IGBSRC=${IGBDIR}.tar.gz
 
 IXGBEDIR=ixgbe-5.3.3
@@ -254,6 +254,8 @@ igb.ko igb: .compile_mark ${IGBSRC}
        rm -rf ${IGBDIR}
        tar xf ${IGBSRC}
        [ ! -e /lib/modules/${KVNAME}/build ] || (echo "please remove /lib/modules/${KVNAME}/build" && false)
+       cd ${IGBDIR}; patch -p1 < ../patches/intel/igb/igb_4.10_max-mtu.patch
+       cd ${IGBDIR}; patch -p1 < ../patches/intel/igb/igb_4.12_compat.patch
        cd ${IGBDIR}/src; make BUILD_KERNEL=${KVNAME} KSRC=${TOP}/${KERNEL_SRC}
        cp ${IGBDIR}/src/igb.ko igb.ko
 
diff --git a/igb-5.3.5.10.tar.gz b/igb-5.3.5.10.tar.gz
new file mode 100644 (file)
index 0000000..e3ae7f6
Binary files /dev/null and b/igb-5.3.5.10.tar.gz differ
diff --git a/igb-5.3.5.12.tar.gz b/igb-5.3.5.12.tar.gz
deleted file mode 100644 (file)
index bb84854..0000000
Binary files a/igb-5.3.5.12.tar.gz and /dev/null differ
diff --git a/patches/intel/igb/igb_4.10_max-mtu.patch b/patches/intel/igb/igb_4.10_max-mtu.patch
new file mode 100644 (file)
index 0000000..d04ead5
--- /dev/null
@@ -0,0 +1,47 @@
+diff --git a/src/e1000_defines.h b/src/e1000_defines.h
+index 6de3988..d58e12f 100644
+--- a/src/e1000_defines.h
++++ b/src/e1000_defines.h
+@@ -423,7 +423,8 @@
+ #define ETHERNET_IEEE_VLAN_TYPE               0x8100  /* 802.3ac packet */
+ #define ETHERNET_FCS_SIZE             4
+-#define MAX_JUMBO_FRAME_SIZE          0x3F00
++#define MAX_JUMBO_FRAME_SIZE          0x2600
++#define MAX_STD_JUMBO_FRAME_SIZE      9216
+ /* The datasheet maximum supported RX size is 9.5KB (9728 bytes) */
+ #define MAX_RX_JUMBO_FRAME_SIZE               0x2600
+ #define E1000_TX_PTR_GAP              0x1F
+diff --git a/src/igb_main.c b/src/igb_main.c
+index 2dff0f4..bbfe87e 100644
+--- a/src/igb_main.c
++++ b/src/igb_main.c
+@@ -2852,6 +2852,10 @@ static int igb_probe(struct pci_dev *pdev,
+       if (pci_using_dac)
+               netdev->features |= NETIF_F_HIGHDMA;
++      /* MTU range: 68 - 9216 */
++      netdev->min_mtu = ETH_MIN_MTU;
++      netdev->max_mtu = MAX_STD_JUMBO_FRAME_SIZE;
++
+       adapter->en_mng_pt = e1000_enable_mng_pass_thru(hw);
+ #ifdef DEBUG
+       if (adapter->dmac != IGB_DMAC_DISABLE)
+@@ -5832,17 +5836,6 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
+       struct pci_dev *pdev = adapter->pdev;
+       int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
+-      if ((new_mtu < 68) || (max_frame > MAX_JUMBO_FRAME_SIZE)) {
+-              dev_err(pci_dev_to_dev(pdev), "Invalid MTU setting\n");
+-              return -EINVAL;
+-      }
+-
+-#define MAX_STD_JUMBO_FRAME_SIZE 9238
+-      if (max_frame > MAX_STD_JUMBO_FRAME_SIZE) {
+-              dev_err(pci_dev_to_dev(pdev), "MTU > 9216 not supported.\n");
+-              return -EINVAL;
+-      }
+-
+       /* adjust max frame to be at least the size of a standard frame */
+       if (max_frame < (ETH_FRAME_LEN + ETH_FCS_LEN))
+               max_frame = ETH_FRAME_LEN + ETH_FCS_LEN;
diff --git a/patches/intel/igb/igb_4.12_compat.patch b/patches/intel/igb/igb_4.12_compat.patch
new file mode 100644 (file)
index 0000000..efbfda6
--- /dev/null
@@ -0,0 +1,17 @@
+diff --git a/src/igb_main.c.orig b/src/igb_main.c
+index 3ee1ec7..c8adf04 100644
+--- a/src/igb_main.c.orig
++++ b/src/igb_main.c
+@@ -1047,8 +1047,10 @@ static void igb_set_interrupt_capability(struct igb_adapter *adapter, bool msix)
+                       for (i = 0; i < numvecs; i++)
+                               adapter->msix_entries[i].entry = i;
+-                      err = pci_enable_msix(pdev,
+-                                            adapter->msix_entries, numvecs);
++                      err = pci_enable_msix_range(pdev,
++                                                  adapter->msix_entries,
++                                                  numvecs,
++                                                  numvecs);
+                       if (err == 0)
+                               break;
+               }