From patchwork Thu Mar 17 04:59:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 598895 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3qQbkg42WRz9sCj for ; Thu, 17 Mar 2016 15:59:55 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=bwUK6rp9; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752631AbcCQE7v (ORCPT ); Thu, 17 Mar 2016 00:59:51 -0400 Received: from mail-pf0-f176.google.com ([209.85.192.176]:34538 "EHLO mail-pf0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751678AbcCQE7u (ORCPT ); Thu, 17 Mar 2016 00:59:50 -0400 Received: by mail-pf0-f176.google.com with SMTP id x3so103960531pfb.1 for ; Wed, 16 Mar 2016 21:59:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=+3qYzSiz1Q2kQMsBPYrudMy0gD3VNTqoi90Yt0MdbSI=; b=bwUK6rp9092EmPSv5JEVpzAch1vkWY1cGACrwIy5PO+pJxYfJarDqoIFgMsZI3f4um dNlW4fQcdmFTMbSTYxCogdCLNfTaJIHge+YXVKQxI74wzkZC7ueAjqO2VjBGzJVWzPRm MyRH2u9HwPeAzO3WDtGS1/TXt0Z1Rr+ujddYB+L1qdshIJMdmxChXrOdpK8crjv8GJXm Ew7jCQBDdSLHxbKoNtKAs/tT3Mwk/wVdq+JFGdlDHBTwZRB7QH+0YmkIDwq0vr5ZFqvV 0Hwj959UiCW0wSsEyo+6F2co58a8X0AzGsDfKV2vhAbfLVJKGJr3eWhc+eNCbMxFjxYN Kh7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:subject:from:to:cc:date:mime-version :content-transfer-encoding; bh=+3qYzSiz1Q2kQMsBPYrudMy0gD3VNTqoi90Yt0MdbSI=; b=QJGcEXoog8zAkk8vQD18PmYi6dZh7DbqJ/V6tX6Wp/b2VtNf6BUkMPDb35iGn/pEYr Abdg0mNwgCPEdgqnmbf+wCSJkdmhtEzf4ms16jc6dLocnXsSJSyyxA5sg9nOO5LuDdRG G8UvkgNLgKJ1p46iyJB6IRzHKJ62Zo5Kgb5jL1d433Mm69Ut0utrSt6kvk0uk7QqP85R 3IHKzVPBdoAKizuIA9IyHKBLy+7QEPFpg/01tdrP1IuqOtV+3tsHVP8j3jyrM8q7Jxbp fZPXjAncEmmS3MYSdmtXI/VZ/kuCKNkdQPm8347yB0hjRAgDghKGgDNzCDRbQr9C3idl aZxg== X-Gm-Message-State: AD7BkJLi0jupI/DdS5O9bIwg4XV4pqbK3k/yN1kBfmwHYItaxYN4NquLFna2affROgtGsg== X-Received: by 10.66.155.232 with SMTP id vz8mr11840026pab.53.1458190790326; Wed, 16 Mar 2016 21:59:50 -0700 (PDT) Received: from [192.168.86.170] (c-73-231-122-98.hsd1.ca.comcast.net. [73.231.122.98]) by smtp.googlemail.com with ESMTPSA id 16sm9453217pfk.28.2016.03.16.21.59.49 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 16 Mar 2016 21:59:49 -0700 (PDT) Message-ID: <1458190789.7353.33.camel@edumazet-glaptop3.roam.corp.google.com> Subject: [PATCH net] vlan: propagate gso_max_segs From: Eric Dumazet To: David Miller Cc: netdev Date: Wed, 16 Mar 2016 21:59:49 -0700 X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Eric Dumazet vlan drivers lack proper propagation of gso_max_segs from lower device. Signed-off-by: Eric Dumazet --- drivers/net/ipvlan/ipvlan_main.c | 2 ++ drivers/net/macvlan.c | 2 ++ net/8021q/vlan.c | 1 + net/8021q/vlan_dev.c | 1 + 4 files changed, 6 insertions(+) diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c index 5802b90..57941d3 100644 --- a/drivers/net/ipvlan/ipvlan_main.c +++ b/drivers/net/ipvlan/ipvlan_main.c @@ -119,6 +119,7 @@ static int ipvlan_init(struct net_device *dev) dev->features = phy_dev->features & IPVLAN_FEATURES; dev->features |= NETIF_F_LLTX; dev->gso_max_size = phy_dev->gso_max_size; + dev->gso_max_segs = phy_dev->gso_max_segs; dev->hard_header_len = phy_dev->hard_header_len; ipvlan_set_lockdep_class(dev); @@ -592,6 +593,7 @@ static int ipvlan_device_event(struct notifier_block *unused, list_for_each_entry(ipvlan, &port->ipvlans, pnode) { ipvlan->dev->features = dev->features & IPVLAN_FEATURES; ipvlan->dev->gso_max_size = dev->gso_max_size; + ipvlan->dev->gso_max_segs = dev->gso_max_segs; netdev_features_change(ipvlan->dev); } break; diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 6e953e3..2bcf1f3 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -803,6 +803,7 @@ static int macvlan_init(struct net_device *dev) dev->hw_features |= NETIF_F_LRO; dev->vlan_features = lowerdev->vlan_features & MACVLAN_FEATURES; dev->gso_max_size = lowerdev->gso_max_size; + dev->gso_max_segs = lowerdev->gso_max_segs; dev->hard_header_len = lowerdev->hard_header_len; macvlan_set_lockdep_class(dev); @@ -1532,6 +1533,7 @@ static int macvlan_device_event(struct notifier_block *unused, case NETDEV_FEAT_CHANGE: list_for_each_entry(vlan, &port->vlans, list) { vlan->dev->gso_max_size = dev->gso_max_size; + vlan->dev->gso_max_segs = dev->gso_max_segs; netdev_update_features(vlan->dev); } break; diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 69929c0..a1e273a 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -311,6 +311,7 @@ static void vlan_transfer_features(struct net_device *dev, struct vlan_dev_priv *vlan = vlan_dev_priv(vlandev); vlandev->gso_max_size = dev->gso_max_size; + vlandev->gso_max_segs = dev->gso_max_segs; if (vlan_hw_offload_capable(dev->features, vlan->vlan_proto)) vlandev->hard_header_len = dev->hard_header_len; diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index e416a40..e7e6257 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c @@ -551,6 +551,7 @@ static int vlan_dev_init(struct net_device *dev) dev->features |= real_dev->vlan_features | NETIF_F_LLTX | NETIF_F_GSO_SOFTWARE; dev->gso_max_size = real_dev->gso_max_size; + dev->gso_max_segs = real_dev->gso_max_segs; if (dev->features & NETIF_F_VLAN_FEATURES) netdev_warn(real_dev, "VLAN features are set incorrectly. Q-in-Q configurations may not work correctly.\n");