igb_4.10_max-mtu.patch 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. diff --git a/src/e1000_defines.h b/src/e1000_defines.h
  2. index 6de3988..d58e12f 100644
  3. --- a/src/e1000_defines.h
  4. +++ b/src/e1000_defines.h
  5. @@ -423,7 +423,8 @@
  6. #define ETHERNET_IEEE_VLAN_TYPE 0x8100 /* 802.3ac packet */
  7. #define ETHERNET_FCS_SIZE 4
  8. -#define MAX_JUMBO_FRAME_SIZE 0x3F00
  9. +#define MAX_JUMBO_FRAME_SIZE 0x2600
  10. +#define MAX_STD_JUMBO_FRAME_SIZE 9216
  11. /* The datasheet maximum supported RX size is 9.5KB (9728 bytes) */
  12. #define MAX_RX_JUMBO_FRAME_SIZE 0x2600
  13. #define E1000_TX_PTR_GAP 0x1F
  14. diff --git a/src/igb_main.c b/src/igb_main.c
  15. index 2dff0f4..bbfe87e 100644
  16. --- a/src/igb_main.c
  17. +++ b/src/igb_main.c
  18. @@ -2852,6 +2852,10 @@ static int igb_probe(struct pci_dev *pdev,
  19. if (pci_using_dac)
  20. netdev->features |= NETIF_F_HIGHDMA;
  21. + /* MTU range: 68 - 9216 */
  22. + netdev->min_mtu = ETH_MIN_MTU;
  23. + netdev->max_mtu = MAX_STD_JUMBO_FRAME_SIZE;
  24. +
  25. adapter->en_mng_pt = e1000_enable_mng_pass_thru(hw);
  26. #ifdef DEBUG
  27. if (adapter->dmac != IGB_DMAC_DISABLE)
  28. @@ -5832,17 +5836,6 @@ static int igb_change_mtu(struct net_device *netdev, int new_mtu)
  29. struct pci_dev *pdev = adapter->pdev;
  30. int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN + VLAN_HLEN;
  31. - if ((new_mtu < 68) || (max_frame > MAX_JUMBO_FRAME_SIZE)) {
  32. - dev_err(pci_dev_to_dev(pdev), "Invalid MTU setting\n");
  33. - return -EINVAL;
  34. - }
  35. -
  36. -#define MAX_STD_JUMBO_FRAME_SIZE 9238
  37. - if (max_frame > MAX_STD_JUMBO_FRAME_SIZE) {
  38. - dev_err(pci_dev_to_dev(pdev), "MTU > 9216 not supported.\n");
  39. - return -EINVAL;
  40. - }
  41. -
  42. /* adjust max frame to be at least the size of a standard frame */
  43. if (max_frame < (ETH_FRAME_LEN + ETH_FCS_LEN))
  44. max_frame = ETH_FRAME_LEN + ETH_FCS_LEN;