Received: by 2002:a05:6602:2086:0:0:0:0 with SMTP id a6csp3810103ioa; Tue, 26 Apr 2022 10:12:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxBcplqfzDMI3QN5e28twMH9MVwxqxhbotbNCrMxnhzaM7q/eGSRbb3T4WNaNd7u7dp/tB7 X-Received: by 2002:a63:fd53:0:b0:386:66d:b40c with SMTP id m19-20020a63fd53000000b00386066db40cmr20249921pgj.266.1650993132052; Tue, 26 Apr 2022 10:12:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650993132; cv=none; d=google.com; s=arc-20160816; b=XKdcGNQug4g5WkKDda5zFVJIK1fN8Cec6UJWeaUA3Kc60IpTg9H+4TJWDKvvQyzVX8 8Ryh9LR+zmYd821xhwgqsLwXSZs5EaSRGAXAF4RHu5+wYNShMy6qoLPoVD3c5LBaJ5M5 sgmc5yWqBke/q+VTbcQZU1PmN7zxDBllbBIBsvnRp3nLbchkkbNPkjDb+1REPGsAbaI1 N5Hmu7MAEVot8p/QT6kbir+GjkwUOXoDuHGDw/oEzbfb0eidpq2SxsJ3blJAzAO0MXun WhQfDPk67hIHxsJXzGT0muMwdxbHvNCNRxRLmLKkZe0LPOYDFz3+5NwOGmpS3w0P+1PT aqYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=wuSavbWTwTGIu8CC554caLs/8fSA1yAhMIzkCk75oho=; b=Sk4/Og23oXLrvCH0+QqV6t2eQ4+UfMJPpbKPwf7MZyShVixRThE4RBdwT5fnzR8vc4 QUOMkeKkrPjRWO9YIyPLCduZslYJyB5ZIfdldnUZfY3yw8jkf8qlm2DZlihsgsPZLL2T 2tsAhRs8gThMaK+/ZrifUXqYv/QZXBAtHMoDStpBOSD4GTezj2jyNO/dqwjmN8SNMxuq OYgGWLpm89M6GmhnsA21g12Xi25/bCOpoDzj0aTBFOLhOrGfG/OKFri5XtyDDj0ZnE4i mwaNKy5K7SlPzmYr8IkVUJSzMZOieoZ8eO+wfq+v2FJ2inzHKjbVLbBRpKIOg+RtZFMt VObA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@intel.com header.s=Intel header.b=hm6NCVZx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i9-20020a170902c94900b001501189ca21si3341104pla.1.2022.04.26.10.11.54; Tue, 26 Apr 2022 10:12:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@intel.com header.s=Intel header.b=hm6NCVZx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344123AbiDZHmC (ORCPT + 99 others); Tue, 26 Apr 2022 03:42:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60634 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344108AbiDZHl7 (ORCPT ); Tue, 26 Apr 2022 03:41:59 -0400 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 39CD71331BC; Tue, 26 Apr 2022 00:38:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1650958733; x=1682494733; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=cK/K2uq2ENY0coZBc+dYKektq/VAXohMS2xxTvJhnWs=; b=hm6NCVZxdqpNk2o8SFiBCiYqdyIGAxcOkc6bGY16eGJs+fbr3PVZheZa 5K75KZvy3hH6DYSU9xhneczfRNsXYSUSFWLxvvyQEWXhws5h1QmNwYXsj Kb9iE2vhW6RVOBeOe9M3OcnORRpV2w8OuxlM65sZXFapBhkjLa3S9MYH4 H2UsIBAXytPBTcF8yLyDqQ6V6RrtZY2ICGjN+rp0NisWL296gW84wV0bh b2xeoy7gb/RunVyR1K1nClaoj2wOH0fCNhF1gKWd0EDfIUpPC/lt/vwMB rE7UzTTIZf7A2vsNfbY/N44+SZsTNN25DWCGoc3ydDzDOvq8agYOMKoc0 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10328"; a="246048447" X-IronPort-AV: E=Sophos;i="5.90,290,1643702400"; d="scan'208";a="246048447" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2022 00:38:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,290,1643702400"; d="scan'208";a="660537394" Received: from p12hl01tmin.png.intel.com ([10.158.65.175]) by fmsmga002.fm.intel.com with ESMTP; 26 Apr 2022 00:38:46 -0700 From: Tan Tee Min To: Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , "David S . Miller" , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Michael Sit Wei Hong , Xiaoliang Yang , Wong Vee Khee , Tan Tee Min , Ling Pei Lee , Bhupesh Sharma , Kurt Kanzenbach Cc: netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Voon Wei Feng , Song Yoong Siang , Ong@vger.kernel.org, Boon Leong , Tan Tee Min Subject: [PATCH net 1/1] net: stmmac: disable Split Header (SPH) for Intel platforms Date: Tue, 26 Apr 2022 15:45:31 +0800 Message-Id: <20220426074531.4115683-1-tee.min.tan@linux.intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=AC_FROM_MANY_DOTS,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Based on DesignWare Ethernet QoS datasheet, we are seeing the limitation of Split Header (SPH) feature is not supported for Ipv4 fragmented packet. This SPH limitation will cause ping failure when the packets size exceed the MTU size. For example, the issue happens once the basic ping packet size is larger than the configured MTU size and the data is lost inside the fragmented packet, replaced by zeros/corrupted values, and leads to ping fail. So, disable the Split Header for Intel platforms. Cc: # 5.10.x Suggested-by: Ong, Boon Leong Signed-off-by: Mohammad Athari Bin Ismail Signed-off-by: Wong Vee Khee Signed-off-by: Tan Tee Min --- drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 1 + drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +- include/linux/stmmac.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c index 63754a9c4ba7..0b0be0898ac5 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c @@ -454,6 +454,7 @@ static int intel_mgbe_common_data(struct pci_dev *pdev, plat->has_gmac4 = 1; plat->force_sf_dma_mode = 0; plat->tso_en = 1; + plat->sph_disable = 1; /* Multiplying factor to the clk_eee_i clock time * period to make it closer to 100 ns. This value diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 4a4b3651ab3e..2525a80353b7 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -7021,7 +7021,7 @@ int stmmac_dvr_probe(struct device *device, dev_info(priv->device, "TSO feature enabled\n"); } - if (priv->dma_cap.sphen) { + if (priv->dma_cap.sphen && !priv->plat->sph_disable) { ndev->hw_features |= NETIF_F_GRO; priv->sph_cap = true; priv->sph = priv->sph_cap; diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h index 24eea1b05ca2..29917850f079 100644 --- a/include/linux/stmmac.h +++ b/include/linux/stmmac.h @@ -270,5 +270,6 @@ struct plat_stmmacenet_data { int msi_rx_base_vec; int msi_tx_base_vec; bool use_phy_wol; + bool sph_disable; }; #endif -- 2.25.1