[Yakkety][PULL] fix for unable to set MTU larger than 1500

Jesse Sung jesse.sung at canonical.com
Thu May 4 16:44:47 UTC 2017


BugLink: https://launchpad.net/bugs/1679823

There are two issues in this report.

The first one is unable to set MTU larger than 1500 on some devices.

Commit e84f31d (yakkety), "net: centralize net_device min/max MTU
checking", introduced net_device.min_mtu and net_device.max_mtu.
These values will be checked before net_device_ops.ndo_change_mtu().

Then the second commit 04db90d (yakkety) set the default value of
min_mtu to ETH_MIN_MTU(68) and max_mtu to ETH_DATA_LEN(1500), removed
ndo_change_mtu() callback in some NIC drivers, and initialize
min_mtu/max_mtu in each driver if it should be something different
than the default values.

Commits for other drivers are not included in yakkety, thus when one
try to set an MTU larger than ETH_DATA_LEN, it fails.

The second issue is it shows
"Invalid MTU 9000 requested, hw max 68"
instead of
"Invalid MTU 9000 requested, hw max 1500".
This is a typo in commit 04db90d and can be fixed by commit a0e65de.

These commits touch a lot of network drivers, but the changes are quite
trivial. So far we have positive test results for
* e1000e: comment 34
* bnx2x: comment 39
* ixgbe: comment 40
* Zerotier TAP interfaces: comment 45


The following changes since commit 86e762828b7506f5b776106018d7a867c15a0a84:

  nvme: Quirk APST off on "THNSF5256GPUK TOSHIBA" (2017-05-04 10:54:20 +0200)

are available in the git repository at:

  git://git.launchpad.net/~wenchien/+git/yakkety lp1679823

for you to fetch changes up to 3bc189cd9cc5a351b822adbacf1ad3867ca5d90e:

  team: use ETH_MAX_MTU as max mtu (2017-05-04 21:57:59 +0800)

----------------------------------------------------------------
Bert Kenward (2):
      sfc: check MTU against minimum threshold
      ethernet/sfc: use core min/max MTU checking

Jarno Rajahalme (1):
      openvswitch: Set internal device max mtu to ETH_MAX_MTU.

Jarod Wilson (25):
      ethernet/intel: use core min/max MTU checking
      ethernet/broadcom: use core min/max MTU checking
      ethernet/atheros: use core min/max MTU checking
      ethernet/qlogic: use core min/max MTU checking
      ethernet/mellanox: use core min/max MTU checking
      ethernet/marvell: use core min/max MTU checking
      ethernet/cavium: use core min/max MTU checking
      ethernet/neterion: use core min/max MTU checking
      ethernet/dlink: use core min/max MTU checking
      ethernet/sun: use core min/max MTU checking
      ethernet/realtek: use core min/max MTU checking
      ethernet/toshiba: use core min/max MTU checking
      ethernet/tile: use core min/max MTU checking
      ethernet/ibm: use core min/max MTU checking
      ethernet: use core min/max MTU checking
      net: use core MTU range checking in wireless drivers
      net: use core MTU range checking in USB NIC drivers
      net: use core MTU range checking in virt drivers
      net: use core MTU range checking in core net infra
      net: use core MTU range checking in WAN drivers
      ipv4/6: use core net MTU range checking
      s390/net: use net core MTU range checking
      net: use core MTU range checking in misc drivers
      net: remove MTU limits on a few ether_setup callers
      team: use ETH_MAX_MTU as max mtu

Stefan Richter (4):
      firewire: net: fix maximum possible MTU
      firewire: net: set initial MTU = 1500 unconditionally, fix IPv6
on some CardBus cards
      ethernet: fix min/max MTU typos
      firewire: net: really fix maximum possible MTU

Sven Eckelmann (1):
      batman-adv: Revert "use core MTU range checking in misc drivers"

Thomas Falcon (1):
      ibmvnic: Fix initial MTU settings

WANG Cong (1):
      bonding: use ETH_MAX_MTU as max mtu

Zhang Shengju (1):
      nlmon: use core MTU range checking in nlmon driver

 arch/um/drivers/net_kern.c                         |  8 ---
 drivers/char/pcmcia/synclink_cs.c                  |  1 -
 drivers/firewire/net.c                             | 21 +------
 drivers/hsi/clients/ssi_protocol.c                 | 14 ++---
 drivers/infiniband/hw/nes/nes.c                    |  1 -
 drivers/infiniband/hw/nes/nes.h                    |  4 +-
 drivers/infiniband/hw/nes/nes_nic.c                | 10 +---
 drivers/infiniband/ulp/ipoib/ipoib_main.c          |  1 +
 drivers/message/fusion/mptlan.c                    | 15 ++---
 drivers/misc/sgi-xp/xpnet.c                        | 21 ++-----
 drivers/net/bonding/bond_main.c                    |  1 +
 drivers/net/ethernet/agere/et131x.c                |  7 ++-
 drivers/net/ethernet/altera/altera_tse.h           |  1 -
 drivers/net/ethernet/altera/altera_tse_main.c      | 14 +----
 drivers/net/ethernet/amd/amd8111e.c                |  5 +-
 drivers/net/ethernet/atheros/alx/hw.h              |  1 -
 drivers/net/ethernet/atheros/alx/main.c            | 10 +---
 drivers/net/ethernet/atheros/atl1c/atl1c_main.c    | 41 +++++++++-----
 drivers/net/ethernet/atheros/atl1e/atl1e_main.c    | 12 ++--
 drivers/net/ethernet/atheros/atlx/atl1.c           | 15 ++---
 drivers/net/ethernet/atheros/atlx/atl2.c           | 16 +++---
 drivers/net/ethernet/atheros/atlx/atl2.h           |  3 -
 drivers/net/ethernet/broadcom/b44.c                |  9 ++-
 drivers/net/ethernet/broadcom/bcm63xx_enet.c       | 35 ++++--------
 drivers/net/ethernet/broadcom/bnx2.c               | 16 +++---
 drivers/net/ethernet/broadcom/bnx2.h               |  6 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x.h        |  6 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c    |  8 +--
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c   | 22 +++-----
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c   |  7 ++-
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          |  7 ++-
 drivers/net/ethernet/broadcom/sb1250-mac.c         |  2 +-
 drivers/net/ethernet/broadcom/tg3.c                |  9 +--
 drivers/net/ethernet/brocade/bna/bnad.c            |  7 ++-
 drivers/net/ethernet/cadence/macb.c                | 19 +++----
 drivers/net/ethernet/calxeda/xgmac.c               | 20 ++-----
 drivers/net/ethernet/cavium/liquidio/lio_main.c    | 15 ++---
 .../net/ethernet/cavium/liquidio/octeon_network.h  |  2 +-
 drivers/net/ethernet/cavium/octeon/octeon_mgmt.c   | 13 +----
 drivers/net/ethernet/cavium/thunder/nicvf_main.c   | 10 ++--
 drivers/net/ethernet/chelsio/cxgb/common.h         |  5 ++
 drivers/net/ethernet/chelsio/cxgb/cxgb2.c          | 18 +++++-
 drivers/net/ethernet/chelsio/cxgb/pm3393.c         |  8 +--
 drivers/net/ethernet/chelsio/cxgb/vsc7326.c        |  5 --
 drivers/net/ethernet/cisco/enic/enic_main.c        |  7 ++-
 drivers/net/ethernet/cisco/enic/enic_res.h         |  2 +-
 drivers/net/ethernet/dlink/dl2k.c                  | 22 ++------
 drivers/net/ethernet/dlink/sundance.c              |  6 +-
 drivers/net/ethernet/freescale/gianfar.c           |  9 +--
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c  |  3 +-
 drivers/net/ethernet/hisilicon/hns/hns_enet.c      | 11 ++--
 drivers/net/ethernet/ibm/ehea/ehea_main.c          | 13 ++---
 drivers/net/ethernet/ibm/emac/core.c               |  9 +--
 drivers/net/ethernet/ibm/ibmveth.c                 |  2 +-
 drivers/net/ethernet/ibm/ibmvnic.c                 | 11 ++--
 drivers/net/ethernet/intel/e100.c                  |  9 ---
 drivers/net/ethernet/intel/e1000/e1000_main.c      | 12 ++--
 drivers/net/ethernet/intel/e1000e/netdev.c         | 14 ++---
 drivers/net/ethernet/intel/fm10k/fm10k_netdev.c    | 15 ++---
 drivers/net/ethernet/intel/i40e/i40e_main.c        | 10 ++--
 drivers/net/ethernet/intel/i40evf/i40evf_main.c    |  8 +--
 drivers/net/ethernet/intel/igb/e1000_defines.h     |  3 +-
 drivers/net/ethernet/intel/igb/igb_main.c          | 15 ++---
 drivers/net/ethernet/intel/igbvf/defines.h         |  3 +-
 drivers/net/ethernet/intel/igbvf/netdev.c          | 14 ++---
 drivers/net/ethernet/intel/ixgb/ixgb_main.c        | 16 ++----
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      | 11 ++--
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  | 33 +++++------
 drivers/net/ethernet/marvell/mvneta.c              | 36 ++++--------
 drivers/net/ethernet/marvell/mvpp2.c               | 36 +++---------
 drivers/net/ethernet/marvell/pxa168_eth.c          |  7 ++-
 drivers/net/ethernet/marvell/skge.c                |  7 ++-
 drivers/net/ethernet/marvell/sky2.c                | 18 +++---
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c     |  8 +--
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  | 24 ++------
 drivers/net/ethernet/micrel/ksz884x.c              | 33 +++++------
 drivers/net/ethernet/myricom/myri10ge/myri10ge.c   | 20 ++++---
 drivers/net/ethernet/natsemi/natsemi.c             |  7 ++-
 drivers/net/ethernet/neterion/s2io.c               |  9 ++-
 drivers/net/ethernet/neterion/vxge/vxge-config.h   |  2 +-
 drivers/net/ethernet/neterion/vxge/vxge-main.c     |  9 ++-
 .../net/ethernet/netronome/nfp/nfp_net_common.c    | 10 ++--
 drivers/net/ethernet/nvidia/forcedeth.c            |  9 ++-
 .../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c   | 13 ++---
 drivers/net/ethernet/pasemi/pasemi_mac.c           | 12 ++--
 drivers/net/ethernet/qlogic/qede/qede.h            |  5 +-
 drivers/net/ethernet/qlogic/qede/qede_ethtool.c    |  8 ---
 drivers/net/ethernet/qlogic/qede/qede_main.c       |  4 ++
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c     |  6 --
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c   |  4 ++
 drivers/net/ethernet/qualcomm/qca_framing.h        |  6 +-
 drivers/net/ethernet/qualcomm/qca_spi.c            | 16 ++----
 drivers/net/ethernet/realtek/8139cp.c              |  8 +--
 drivers/net/ethernet/realtek/8139too.c             | 13 ++---
 drivers/net/ethernet/realtek/r8169.c               |  8 +--
 drivers/net/ethernet/rocker/rocker_main.c          | 12 ++--
 drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c    | 17 ++----
 drivers/net/ethernet/sfc/efx.c                     |  4 +-
 drivers/net/ethernet/sfc/net_driver.h              |  3 +
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  | 25 +++------
 drivers/net/ethernet/sun/cassini.c                 |  7 ++-
 drivers/net/ethernet/sun/ldmvsw.c                  |  5 +-
 drivers/net/ethernet/sun/niu.c                     |  7 ++-
 drivers/net/ethernet/sun/sungem.c                  | 11 ++--
 drivers/net/ethernet/sun/sunvnet.c                 |  5 +-
 drivers/net/ethernet/sun/sunvnet_common.c          | 10 ----
 drivers/net/ethernet/sun/sunvnet_common.h          |  3 +-
 drivers/net/ethernet/tehuti/tehuti.c               | 14 ++---
 drivers/net/ethernet/tehuti/tehuti.h               |  3 +
 drivers/net/ethernet/ti/netcp_core.c               | 20 ++-----
 drivers/net/ethernet/tile/tilegx.c                 | 21 +++----
 drivers/net/ethernet/tile/tilepro.c                | 27 ++-------
 drivers/net/ethernet/toshiba/ps3_gelic_net.c       | 23 ++------
 drivers/net/ethernet/toshiba/ps3_gelic_net.h       |  1 -
 drivers/net/ethernet/toshiba/ps3_gelic_wireless.c  |  1 -
 drivers/net/ethernet/toshiba/spider_net.c          | 24 ++------
 drivers/net/ethernet/via/via-velocity.c            | 11 ++--
 drivers/net/fddi/skfp/skfddi.c                     |  1 -
 drivers/net/fjes/fjes_main.c                       |  2 +
 drivers/net/geneve.c                               | 48 +++++++---------
 drivers/net/hippi/rrunner.c                        |  1 -
 drivers/net/hyperv/netvsc_drv.c                    |  7 +++
 drivers/net/macsec.c                               |  2 +
 drivers/net/macvlan.c                              |  8 ++-
 drivers/net/nlmon.c                                | 20 +------
 drivers/net/ntb_netdev.c                           |  3 +
 drivers/net/rionet.c                               | 15 +----
 drivers/net/slip/slip.c                            | 11 ++--
 drivers/net/team/team.c                            |  1 +
 drivers/net/tun.c                                  | 20 ++-----
 drivers/net/usb/asix_devices.c                     |  4 +-
 drivers/net/usb/ax88179_178a.c                     |  4 +-
 drivers/net/usb/cdc-phonet.c                       | 12 +---
 drivers/net/usb/cdc_ncm.c                          |  5 +-
 drivers/net/usb/lan78xx.c                          |  8 +--
 drivers/net/usb/r8152.c                            | 15 ++++-
 drivers/net/usb/sierra_net.c                       | 13 +----
 drivers/net/usb/smsc75xx.c                         |  4 +-
 drivers/net/usb/usbnet.c                           |  4 +-
 drivers/net/veth.c                                 | 17 +-----
 drivers/net/vxlan.c                                | 64 ++++++++++++----------
 drivers/net/wan/c101.c                             |  1 -
 drivers/net/wan/cosa.c                             |  1 -
 drivers/net/wan/dscc4.c                            |  1 -
 drivers/net/wan/farsync.c                          |  1 -
 drivers/net/wan/fsl_ucc_hdlc.c                     |  1 -
 drivers/net/wan/hdlc.c                             | 11 +---
 drivers/net/wan/hdlc_fr.c                          |  3 +-
 drivers/net/wan/hostess_sv11.c                     |  1 -
 drivers/net/wan/ixp4xx_hss.c                       |  1 -
 drivers/net/wan/lmc/lmc_main.c                     |  1 -
 drivers/net/wan/n2.c                               |  1 -
 drivers/net/wan/pc300too.c                         |  1 -
 drivers/net/wan/pci200syn.c                        |  1 -
 drivers/net/wan/sealevel.c                         |  1 -
 drivers/net/wan/wanxl.c                            |  1 -
 drivers/net/wan/x25_asy.c                          |  5 +-
 drivers/net/wimax/i2400m/netdev.c                  | 22 +-------
 drivers/net/wireless/ath/wil6210/netdev.c          | 17 +-----
 drivers/net/wireless/atmel/atmel.c                 | 13 ++---
 drivers/net/wireless/cisco/airo.c                  | 14 +----
 drivers/net/wireless/intel/ipw2x00/ipw2100.c       |  3 +-
 drivers/net/wireless/intel/ipw2x00/ipw2200.c       |  8 ++-
 drivers/net/wireless/intel/ipw2x00/libipw.h        |  1 -
 drivers/net/wireless/intel/ipw2x00/libipw_module.c |  9 ---
 drivers/net/wireless/intersil/hostap/hostap_main.c | 15 +----
 drivers/net/wireless/intersil/orinoco/main.c       |  6 +-
 drivers/s390/net/ctcm_main.c                       |  5 +-
 drivers/s390/net/netiucv.c                         | 24 +-------
 drivers/s390/net/qeth_core_main.c                  |  4 --
 drivers/s390/net/qeth_l2_main.c                    |  2 +
 drivers/s390/net/qeth_l3_main.c                    |  2 +
 drivers/staging/octeon/ethernet.c                  | 21 ++++---
 drivers/staging/wlan-ng/p80211netdev.c             | 18 ++----
 drivers/tty/n_gsm.c                                | 12 +---
 drivers/tty/synclink.c                             |  1 -
 drivers/tty/synclink_gt.c                          |  1 -
 drivers/tty/synclinkmp.c                           |  1 -
 drivers/usb/gadget/function/f_phonet.c             | 11 +---
 drivers/usb/gadget/function/u_ether.c              | 14 ++---
 include/linux/fddidevice.h                         |  1 -
 include/linux/hdlc.h                               |  2 -
 include/linux/hippidevice.h                        |  1 -
 net/802/fddi.c                                     | 11 +---
 net/802/hippi.c                                    | 14 +----
 net/8021q/vlan_dev.c                               |  3 +
 net/atm/br2684.c                                   |  4 +-
 net/atm/lec.c                                      | 11 +---
 net/bluetooth/bnep/netdev.c                        |  2 +
 net/bridge/br_device.c                             |  3 +-
 net/dsa/slave.c                                    |  2 +
 net/hsr/hsr_device.c                               |  1 +
 net/ipv4/ip_tunnel.c                               |  6 +-
 net/ipv6/ip6_tunnel.c                              |  4 +-
 net/ipv6/ip6_vti.c                                 | 21 +------
 net/ipv6/sit.c                                     | 14 +----
 net/irda/irlan/irlan_eth.c                         |  3 +-
 net/l2tp/l2tp_eth.c                                |  2 +
 net/mac80211/iface.c                               | 15 ++---
 net/openvswitch/vport-internal_dev.c               | 12 +---
 net/phonet/pep-gprs.c                              | 12 +---
 net/sched/sch_teql.c                               |  5 +-
 202 files changed, 726 insertions(+), 1289 deletions(-)




More information about the kernel-team mailing list