ACK/cmnt: [Yakkety][PULL] fix for unable to set MTU larger than 1500

Stefan Bader stefan.bader at canonical.com
Fri May 5 16:42:45 UTC 2017


On 04.05.2017 18:44, Jesse Sung wrote:
> BugLink: https://launchpad.net/bugs/1679823
> 
> There are two issues in this report.

A slightly hesitant ack as this really is a massive number of changes from a
wide range of upstream (like the first in series was in 4.10 and the last one in
4.11). Luckily Zesty seems ok as of upstream stable 4.10.5.

All of this was caused as part of rebasing the hyperv driver to 4.10
(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670544) which,
given the impact, we should think about twice before also doing to Xenial.

-Stefan

> 
> 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(-)
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20170505/06c06966/attachment.sig>


More information about the kernel-team mailing list