From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934989AbcJQQUU (ORCPT ); Mon, 17 Oct 2016 12:20:20 -0400 Received: from mx3.wp.pl ([212.77.101.9]:4166 "EHLO mx3.wp.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934054AbcJQQUM (ORCPT ); Mon, 17 Oct 2016 12:20:12 -0400 Date: Mon, 17 Oct 2016 17:20:06 +0100 From: Jakub Kicinski To: Jarod Wilson , David Miller Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Subject: Re: [PATCH v3 net-next 2/2] net: deprecate eth_change_mtu, remove usage Message-ID: <20161017172006.4d549daa@jkicinski-Precision-T1700> In-Reply-To: <20161008020434.9691-3-jarod@redhat.com> References: <20161002.224322.740109807229746275.davem@davemloft.net> <20161008020434.9691-1-jarod@redhat.com> <20161008020434.9691-3-jarod@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-WP-MailID: 73e5323706b4e1fcb300ed4323ad27fe X-WP-AV: skaner antywirusowy poczty Nowej Poczty X-WP-SPAM: NO 000000A [sTNU] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 7 Oct 2016 22:04:34 -0400, Jarod Wilson wrote: > @@ -357,6 +356,8 @@ void ether_setup(struct net_device *dev) > dev->type = ARPHRD_ETHER; > dev->hard_header_len = ETH_HLEN; > dev->mtu = ETH_DATA_LEN; > + dev->min_mtu = ETH_MIN_MTU; > + dev->max_mtu = ETH_DATA_LEN; > dev->addr_len = ETH_ALEN; > dev->tx_queue_len = 1000; /* Ethernet wants good queues */ > dev->flags = IFF_BROADCAST|IFF_MULTICAST; This chunk seems to be breaking MTUs > 1500 for me. On Fri, 7 Oct 2016 22:04:33 -0400, Jarod Wilson wrote: > diff --git a/net/core/dev.c b/net/core/dev.c > index f1fe26f..f376639 100644 > --- a/net/core/dev.c > +++ b/net/core/dev.c > @@ -6499,9 +6499,18 @@ int dev_set_mtu(struct net_device *dev, int new_mtu) > if (new_mtu == dev->mtu) > return 0; > > - /* MTU must be positive. */ > - if (new_mtu < 0) > + /* MTU must be positive, and in range */ > + if (new_mtu < 0 || new_mtu < dev->min_mtu) { > + net_err_ratelimited("%s: Invalid MTU %d requested, hw min %d\n", > + dev->name, new_mtu, dev->min_mtu); > return -EINVAL; > + } > + > + if (dev->max_mtu > 0 && new_mtu > dev->max_mtu) { > + net_err_ratelimited("%s: Invalid MTU %d requested, hw max %d\n", > + dev->name, new_mtu, dev->min_mtu); > + return -EINVAL; > + } Please correct me if I'm wrong but it seems like we are now limiting _all_ ethernet drivers to ETH_DATA_LEN in net-next.