From patchwork Sun Sep 27 02:14:55 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: 2.6.31 regression: e1000e jumbo frames no longer work: 'Unsupported MTU setting' Date: Sat, 26 Sep 2009 16:14:55 -0000 From: Alexander Duyck X-Patchwork-Id: 34339 Message-Id: <5f2db9d90909261914l3a927f4cya1dc5e4548688bce@mail.gmail.com> To: Nix Cc: e1000-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, netdev , bruce.w.allan@intel.com On Sat, Sep 26, 2009 at 4:16 AM, Nix wrote: > [Bruce, you have changes in net-next in this area, so you might have a clue >  what's going on here.] > > In 2.6.30.x, I was happily bringing up the 82574L cards in one server like > this: > > ip link set fastnet up mtu 7200 > > As of 2.6.31.x, what I see is this: > > spindle:/root# ip link set mtu 7200 dev fastnet > RTNETLINK answers: Invalid argument > [ 3380.261796] 0000:02:00.0: fastnet: Unsupported MTU setting > > As far as I can tell, all MTUs above 1500 now fail. > > 'Unsupported' or not, this used to work, and I'd certainly expect jumbo > frames to be supported on a gigabit card! > > I can't see any terribly relevant changes to e1000e between 2.6.30 and > 2.6.31, so I'm Cc:ing netdev on the offchance that this is something > more generic (unlikely, as 7200-byte MTUs still work fine in 2.6.31 with > the r8169 I'm typing this on, but that doesn't help if half the subnet > is forced to use MTUs of 1500). It looks like the problem is that the 82574 and 82583 seem to have their max_hw_frame_size values swapped. You might try applying the patch below. I am not sure if it will apply since I hand generated it using the git patch that seems to have introduced the problem, and I am sending the patch through an untested account that may mangle the patch. I will see about submitting an official patch for this sometime next few days. Thanks, Alex --- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c --- a/drivers/net/e1000e/82571.c +++ b/drivers/net/e1000e/82571.c @@ -1803,7 +1803,7 @@ struct e1000_info e1000_82574_info = { | FLAG_HAS_AMT | FLAG_HAS_CTRLEXT_ON_LOAD, .pba = 20, - .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, + .max_hw_frame_size = DEFAULT_JUMBO, .get_variants = e1000_get_variants_82571, .mac_ops = &e82571_mac_ops, .phy_ops = &e82_phy_ops_bm, @@ -1820,7 +1820,7 @@ struct e1000_info e1000_82583_info = { | FLAG_HAS_AMT | FLAG_HAS_CTRLEXT_ON_LOAD, .pba = 20, - .max_hw_frame_size = DEFAULT_JUMBO, + .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN, .get_variants = e1000_get_variants_82571, .mac_ops = &e82571_mac_ops, .phy_ops = &e82_phy_ops_bm,