From patchwork Mon Apr 14 12:02:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vishal Badole X-Patchwork-Id: 14050275 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2080.outbound.protection.outlook.com [40.107.244.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8763829DB8A; Mon, 14 Apr 2025 12:03:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.80 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744632207; cv=fail; b=qbPolIIdXf6SuQrP0INBnh1bAnBM71ZO0yzIUxEJTq9rldzFFh7+HvKsBB+j5qrteAjTNUSbnD3tarSXZNJCNjkKyTA8Ti/VKERdqVNjgidSvWNTZrh+W/zXAV8zlko4uaVBfS4HFeJ0N89QFK7/ycUjrg5szBQRe3jfh7sYrXk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744632207; c=relaxed/simple; bh=AdOAIb63nYpvVH6X1hDFycYa+9Vh/eNR5kJJWH0zsIs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=t0+IEfqxiAgq/m2gHOz1fpRtg4c5ittofzroNCwiVwtRlVdmQd1QV3y8Sxpg1mNMFgw0sdXtJz4zzCbhliSdm4TG//ACMLff8TVCYliX0IJmnqURcSIOyPWJ+F5FdjKy0MTSD4jdFU9xTn+gdgRXWDoe8I8pwXuteCYVv1aAyLo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=KL8r87p0; arc=fail smtp.client-ip=40.107.244.80 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="KL8r87p0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=B6WG0UgOiwDL2d2QkKBll1Utl66nqwQqoQpN1Ite936oE0OBkepUFAkuFrqWiEh3aCGir35Oyb2cndTopgyBgMh9dqI/hs1tCBdYYrlENGaT5YVcPOR+0gFpzdoDjXGpxAfashsKT6FUt7WnNFnfproJhbsJrZq1mhI9Hx9jHz2zZaDkg8ao98Vs9j165QZV6PmVIZVtCKhIE8GcQIUFHPsp4tDzva9Q0gsbHPYhKD2gNjD6inamqTlE/QvJiXx54lfoL6Ux1WdC+/HEBBfMdqJHdCpOKb4d10PpIWVQ5CjUs7RZP1XP0jrzVa+EeRWGaPdrHKCnht5fvDOjBhJTNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qJuts5a8zwFeyT9L+eToKexGTuovnyoHpLWkkTB93bc=; b=O6P4ukHnUywh4yI5bwMrgKAGbf3cF8UulmGKjou0Vz4LOevbgKoDdJx68G8XVZ8okwVUv1rdTorQEPhcJtoWwoVQaUnm+CaTaZKR+sdEZtx3K0ZqB8rVSwP67UCiP65TlZNBkmJVDNp8bYRrcpl0Yk8aRzK3xJsWa7kHbUv70SN/ZAcPBIXbCPNs1pybJy8gpfgm5aXJWyZVf9Xmr3cnFzSEZVXrif72JEQe82/MAzPad9rkGxsU4pTZniAY7jBMgGY9evgpmumanp1y5XIHiZUOoSdMUg90iOWiE9s/OhNsBsFtyqjHtqTOZAw+V+nxbGpBwhrQh2Qf532y2bjtwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lunn.ch smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qJuts5a8zwFeyT9L+eToKexGTuovnyoHpLWkkTB93bc=; b=KL8r87p0tWIW16U7ZkMh/mtewwQb0hyJHLLzfsG7WMnC0NmC+LoJCRKqpY2hpb7Pr2PP9DIA4NQQVDhh0jm805bzMZT3tMNZE8P/wU2IF0OCixIG26Gy47eWVzWBDGdKK10jm5ovTvlULy69r1cK0xWKAKMnWJFl2I1RGxloD74= Received: from MN2PR16CA0050.namprd16.prod.outlook.com (2603:10b6:208:234::19) by SJ1PR12MB6100.namprd12.prod.outlook.com (2603:10b6:a03:45d::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Mon, 14 Apr 2025 12:03:22 +0000 Received: from BN3PEPF0000B371.namprd21.prod.outlook.com (2603:10b6:208:234:cafe::21) by MN2PR16CA0050.outlook.office365.com (2603:10b6:208:234::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon, 14 Apr 2025 12:03:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN3PEPF0000B371.mail.protection.outlook.com (10.167.243.168) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8678.4 via Frontend Transport; Mon, 14 Apr 2025 12:03:22 +0000 Received: from airavat.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 14 Apr 2025 07:03:18 -0500 From: Vishal Badole To: , , , , , , , , CC: Vishal Badole , Subject: [PATCH net 1/2] amd-xgbe: Fix data loss when RX checksum offloading is disabled Date: Mon, 14 Apr 2025 17:32:27 +0530 Message-ID: <20250414120228.182190-2-Vishal.Badole@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250414120228.182190-1-Vishal.Badole@amd.com> References: <20250414120228.182190-1-Vishal.Badole@amd.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PEPF0000B371:EE_|SJ1PR12MB6100:EE_ X-MS-Office365-Filtering-Correlation-Id: e90c4ccc-0f99-41cb-f050-08dd7b4c5a90 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: SFmVlZ9YkdWC5/vrEikGwQNSLcxzGy9OKSKjHF1ziI+043XmkBG/NmOVI+Q/Neq/ovTc7oGQDUd3GO1HCckkk+Ggqh6Vzo/0KD9NvXburv/oHHfg9C6oFFMvkeftWjuj4laMvuBAr8Db19WhsSqH+ouGPxfTQ15ZLDFxCays8vGnR9jzOvH1OjZ6F2QHf5mZRuvxhkR0dKvyi/5s+A5fEMi1A1/fPdCJmUW7eWJM22dF3WK2NJJTmL0uhRhov65cHmNCq8pWWcmDuAbmE+xWn2egb4G//IkRfFbRMV434hxHljEs4Yh7H3U3H4i3OkIKxlTcu4omdv5ob2dKlnyQYcGq6ONtULyOKLWRM8m2oG/UfucjVnVKr1uiCBEcJRrwlhqqukMtOX0zpS9hbVyDgtCsR8il98DZS/aH8OiRCY6B0ClDNJZG/Lkm/pdcnES4GfAb/UOJ6Gqjr5+aP9UMM37iqDdeCrV5iFd3fzIp/Eg7vJN6yyrkzlFvVEvVn7X4+k8XH0ExdZIUpTh8mAdm75FvVcBIZnEyByvrEVuIdTMWDuLZLZRKlaznvB2MRBrgWKZtBRuIZcx3c1Eub7kXBxVz/UEspOoEO2Sqy1K+XHLg1u63tNZ6zG5TCXNpYxGuA59X9PuEUCdF2xuYrcnA1ThzKqX4rgBGdi5lwmBEi1PWizNj5v5EvQ8NtdwULv2w7SKM3dbztjzUwRkM6pcFmYbdDw36CDFX0dU/12xHHELEHwaDpSg8A0w/6tOQjD8K61BWM+dm2Fa911cuc8xy7V2u4Ez/VVMC6SrfWxu+hBL8G5MIborLLIhB8CB5oMKF46v3Hb+/LnIXsu1kEM03xukx+4iWae4oV2P9llJQ67CIz7o7j4Ac09k27mRIXaOkqluNVxVlzMIBJgtec6uMrMSP3N+11lrxHgiIPMyRZvvOBMBCrGVjVq1rBbqOoh1SFu167t6oCB27OYco8zOmrHRpkYlAvHTSgoUbO33gDOaavMG7G3IAdon/5FK9CmcbWpg9HficeANpzNwxhQ5z/bspiLoi4Ffu8i7oQT8s6bLaltooAEXNGdbsiDQK+yU/1zF5Y5JMPj1yVw6+NmgFqlV7LUnhtYnTlXfbM4b9idnmYnc6Ysv2shT6Q7HJoq1tOwo4i3MQNCKzIOZA83HoLlioGBWj1rqDmPdxq2Y4L04mJrbvHr6GpKqnfKZwuBjuVGx+MakZizLhJHsRaobIoeRnA1JrrCwuAyAeJEBGzlhaa14Zz57OeGkLa25+PerDzpWJMcG0VIipcfwjXbB0DFRXV6hCO3yC5C/3rmwDXPIxqKsIrSPfKz2KWdOiQKEOznWLSHOgVEULd5kJyDfED3zGN4Z/u5x7aXMPDO8AMkM686v6P4J+eTeNzIE7g6FWOU/26MEJ7cTtM35jMBjGeV2ITgwewe3EWtfJFB3L3A+3kcA9EeVx/8UrYh+JaYTOPfV4Qbv2OPPHyO8JitzRGmUH3Zk7onmLTB4X8ec6g8icGcqJj1HpC8YMycsk+Wg6 X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 12:03:22.3225 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e90c4ccc-0f99-41cb-f050-08dd7b4c5a90 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN3PEPF0000B371.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6100 X-Patchwork-Delegate: kuba@kernel.org To properly disable checksum offloading, the split header mode must also be disabled. When split header mode is disabled, the network device stores received packets (with size <= 1536 bytes) entirely in buffer1, leaving buffer2 empty. However, with the current DMA configuration, only 256 bytes from buffer1 are copied from the network device to system memory, resulting in the loss of the remaining packet data. Address the issue by programming the ARBS field to 256 bytes, which aligns with the socket buffer size, and setting the SPH bit in the control register to disable split header mode. With this configuration, the network device stores the first 256 bytes of the received packet in buffer1 and the remaining data in buffer2. The DMA is then able to transfer the full packet from the network device to system memory without any data loss. Cc: stable@vger.kernel.org Fixes: c5aa9e3b8156 ("amd-xgbe: Initial AMD 10GbE platform driver") Signed-off-by: Vishal Badole --- drivers/net/ethernet/amd/xgbe/xgbe-common.h | 2 ++ drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 18 ++++++++++++++++++ drivers/net/ethernet/amd/xgbe/xgbe.h | 5 +++++ 3 files changed, 25 insertions(+) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h index bcb221f74875..d92453ee2505 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h @@ -232,6 +232,8 @@ #define DMA_CH_IER_TIE_WIDTH 1 #define DMA_CH_IER_TXSE_INDEX 1 #define DMA_CH_IER_TXSE_WIDTH 1 +#define DMA_CH_RCR_ARBS_INDEX 28 +#define DMA_CH_RCR_ARBS_WIDTH 3 #define DMA_CH_RCR_PBL_INDEX 16 #define DMA_CH_RCR_PBL_WIDTH 6 #define DMA_CH_RCR_RBSZ_INDEX 1 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c index 7a923b6e83df..429c5e1444d8 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c @@ -292,6 +292,8 @@ static void xgbe_config_rx_buffer_size(struct xgbe_prv_data *pdata) XGMAC_DMA_IOWRITE_BITS(pdata->channel[i], DMA_CH_RCR, RBSZ, pdata->rx_buf_size); + XGMAC_DMA_IOWRITE_BITS(pdata->channel[i], DMA_CH_RCR, ARBS, + XGBE_ARBS_SIZE); } } @@ -321,6 +323,18 @@ static void xgbe_config_sph_mode(struct xgbe_prv_data *pdata) XGMAC_IOWRITE_BITS(pdata, MAC_RCR, HDSMS, XGBE_SPH_HDSMS_SIZE); } +static void xgbe_disable_sph_mode(struct xgbe_prv_data *pdata) +{ + unsigned int i; + + for (i = 0; i < pdata->channel_count; i++) { + if (!pdata->channel[i]->rx_ring) + break; + + XGMAC_DMA_IOWRITE_BITS(pdata->channel[i], DMA_CH_CR, SPH, 0); + } +} + static int xgbe_write_rss_reg(struct xgbe_prv_data *pdata, unsigned int type, unsigned int index, unsigned int val) { @@ -3910,5 +3924,9 @@ void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *hw_if) hw_if->disable_vxlan = xgbe_disable_vxlan; hw_if->set_vxlan_id = xgbe_set_vxlan_id; + /* For Split Header*/ + hw_if->enable_sph = xgbe_config_sph_mode; + hw_if->disable_sph = xgbe_disable_sph_mode; + DBGPR("<--xgbe_init_function_ptrs\n"); } diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h index db73c8f8b139..1b9c679453fb 100755 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h @@ -166,6 +166,7 @@ #define XGBE_RX_BUF_ALIGN 64 #define XGBE_SKB_ALLOC_SIZE 256 #define XGBE_SPH_HDSMS_SIZE 2 /* Keep in sync with SKB_ALLOC_SIZE */ +#define XGBE_ARBS_SIZE 3 #define XGBE_MAX_DMA_CHANNELS 16 #define XGBE_MAX_QUEUES 16 @@ -902,6 +903,10 @@ struct xgbe_hw_if { void (*enable_vxlan)(struct xgbe_prv_data *); void (*disable_vxlan)(struct xgbe_prv_data *); void (*set_vxlan_id)(struct xgbe_prv_data *); + + /* For Split Header */ + void (*enable_sph)(struct xgbe_prv_data *pdata); + void (*disable_sph)(struct xgbe_prv_data *pdata); }; /* This structure represents implementation specific routines for an From patchwork Mon Apr 14 12:02:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vishal Badole X-Patchwork-Id: 14050276 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2070.outbound.protection.outlook.com [40.107.236.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E984B2BD598; Mon, 14 Apr 2025 12:03:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744632209; cv=fail; b=Lzhj1YMorDTVrVlHMrzNQu3NK2MplJu8MhC34X68B/Pmg4lVCKkiULzf1wnmR5zq3E2yTpgVblquFbQLipScgX/4TY+iYADWSxFUSgdnfIfNVaEE5eOSMmICHlm23FV4pBcc/U3d9ycl+HEWD86oBiROH1qaLw2grpFuuN2Lhqg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744632209; c=relaxed/simple; bh=GLRXkkfneXcnkhkWa7JJWhdjVfINz2a03COLbIiAbxQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WWJuo0jSa7A0VbY9gNFp6QoFjtZZNYvcWfZNSTOz8JDpugGeRSYQEbUEjDrlEvl7DmEhLX42VW9CjFQuKKee0n8M6cDKxVODSq0yeCTo5UC69Zz35SyW+JUYNbx/33vVjUugaNGQ07PYeqBTvBKjn0fLxX7xVw7xvPeecLEKWJQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=DeOr86lZ; arc=fail smtp.client-ip=40.107.236.70 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="DeOr86lZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WdJ/R0zAr9urFfrSGflOlSAaq+HQfTYbZktZCl/aYu7lXk+ZIeFJmO342l8Vka4aYFLQYkDo1ZN22VkfQmva4NK7DOEZsfvrmf4tzKipq7n8NKEDFU66YzmkgrbiJnfkZlRKIC9F6lMCEIFtio2dB9wHwYM/Spyg/4t4mpYyAQ/hVo7AY66V9wiliPFXK8TsoeZTBas/iqKadl4YivfV6jcepCADfCmrCcFKo0TpG4/H+2t00wxycUK8N1nXWE0a/u5kBOL8UQLJkYN8Ffq1CF7GkNMMldaDbWUPxY9I14ehRA3lRK2ErP/ceBf0icuYVf61CewA/3Mf5fNpR2fJuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ydmCh2KkKYvAaThkc3Bvh4ZWGfwUTZw0BD5omlqmf7c=; b=fnIjf1Onbqkjw412JGF3elCib/VzYd+Eh2c0Vqwe+B307rtY2+1A0qr8gHs/f41ix/nFlxdgIJcmiWnv+RpEiRh+nILG8S6Gcclj74apeILiJJWuH8JBr62SKO9rs+d0yQ2JxcF7RG44rH+G7t2wOoF1ctOhGsuZ9EwdqVwrrac4HBLScOplHVMJKJO6a2iLO9sF3KApufUKph8SL8FP+lfWQckcbhjDTCCwsn4arpGBMkDoIAS0tm41ZiSAm4T0wMMfbja/NKlA2SnOkRz/6BdoRholJFw2cGjszMf6VXASgVLUPXwaFesH8bhppyKmv4J8Ejf9mEyf/RRuacS/5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lunn.ch smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ydmCh2KkKYvAaThkc3Bvh4ZWGfwUTZw0BD5omlqmf7c=; b=DeOr86lZET0N1IHJek0IB6VIy6cRzW/qO9NB0A6Kvtapzss5FW+NvMn27OdFqZuENtICLQ1SEOTHeM5lpn4dv0d4FwJ9r9w8tpbqU4mJftqzfbDhsld0YVFZVxR/M5XaIaKOCj4NnBCL89uj6Z/fVH3fi6SGa1a3MeYLYr317qU= Received: from BN9PR03CA0392.namprd03.prod.outlook.com (2603:10b6:408:111::7) by SA3PR12MB8440.namprd12.prod.outlook.com (2603:10b6:806:2f8::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.27; Mon, 14 Apr 2025 12:03:25 +0000 Received: from BN3PEPF0000B36F.namprd21.prod.outlook.com (2603:10b6:408:111:cafe::f6) by BN9PR03CA0392.outlook.office365.com (2603:10b6:408:111::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8632.34 via Frontend Transport; Mon, 14 Apr 2025 12:03:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN3PEPF0000B36F.mail.protection.outlook.com (10.167.243.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8678.4 via Frontend Transport; Mon, 14 Apr 2025 12:03:24 +0000 Received: from airavat.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 14 Apr 2025 07:03:21 -0500 From: Vishal Badole To: , , , , , , , , CC: Vishal Badole , Subject: [PATCH net 2/2] amd-xgbe: Fix to ensure dependent features are toggled with RX checksum offload Date: Mon, 14 Apr 2025 17:32:28 +0530 Message-ID: <20250414120228.182190-3-Vishal.Badole@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250414120228.182190-1-Vishal.Badole@amd.com> References: <20250414120228.182190-1-Vishal.Badole@amd.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN3PEPF0000B36F:EE_|SA3PR12MB8440:EE_ X-MS-Office365-Filtering-Correlation-Id: e682fbc8-f3f6-421a-5db7-08dd7b4c5c27 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014; X-Microsoft-Antispam-Message-Info: 48KclsQmtl8Y++LNDXx1LzLGKHvSz5y6mWs4aQ+OzMzYei05YZrEIWs0cXAZHgD1XvLpcwLI6vV0jgb2Aa15jC37AIE9Hg1qiUZKL4FwZzBh/SVxul0vASJEZvFLYzR1b6vAcBPeQSE54Lide4mdPo7LzsWGaR+CbmV//ZQDYBPBNalKtk4CiIRPeePsC5TPng4y9UFI7gsPR/8yc23rgiCYDN/qzwe4s29wBbMxqQtQUJBXxR/ygz0VMDyZNkwlFFgnGJcTVxvLnrlS7Onv7CtElLCwergg6nhnC7WYJY3NRgNBDq+dOrvJBMyz6qhvLTnAShrPP2qDmo855uWR4M9I1Z2J7WJYT9QbEbhQpSw4T4S4OlabiTnyK96LyMbVFALBQEHUEPI+NlHS9g+waEgXt9Q1dHh/MBYQXn2CtQoZ3VAuNduQn+JocZW9tLHCYKMnchmwCxIF8ZvjDrvN8WpMsuDauIfg6AwZsbhQIplK1dPZXG7cHFT65YgDqGAYgHYz2qNETWHQyWTzNiOX9X6zEo/xHd3v86QuPBFOoSdiP9ZU/EksWl81pOFKYgBhx0Cdg3vw1t9ROQj2KZZQGqCcUgj5AFeLII4Tj6n9DZMis6mI1B2hZQnYvx4UdosWOoCtCO5r/rTjXHNhvFhNXiGm1x5XYoMZ+jH2C5YQRZlI2S6SegdNQ91i1J5AQAaJJjp5SOnQA3uJBpodI6mcKR2qSoalRPWHiEDe0TgBn3UoABo0tjdHmXs2WntE10VOVTKJ5b/atwNNN2n76hf8vRCv0MuV/QXBKQVi79MqtYxrPXTmxVt7VDbcW31dt1g0Qbg4/QNlETW3JjlH+WJl09usKLund/QVSiHECX+E68y5fdKFu0gtuhLaURzvkHBHJ8HMCE1fqZbZ5fE+8wJuM/1PGHlI9NjYw3Q27dhn2CxytyAkLj5NFMAJXSg9Q+bcHfQh9aatRqqs7vVCizleByihq/6w08vODxO4qIcqpBRxut9rQhiwXBqsrvpGtyIyxRLshbTALZX0R6O6QSHi9xIAFRW6AX6yR66B7BE2Fhk8e9TcYyXVXFcoo9J1dZiMndkV3rq/3gsSp6qAZXe5wVYzl7j0KhI9BWRnRyJBggwbYmy+JCUCs7Q3UKY/y9VV2RrNy8+PDSsOzCA/yrPC5syElGvCysXxUA81x5p/b56bRqgNpY0MhEyyGrxLjg1nKVe8G2iTsl0lvy78AMmu6DqySj2sgrhUhr25WjYbyiszb4VEH8jBsTPGVeNSCUnNsNH2qfb+mL7AwPnx/fM0PCpeBVo18WTuDoeZmgINoRbIKi26JgXJNCmayLxKhtEi/gax7Xj/4xSndX/x3qsLklAdiJS91jOtn7Vor8O37FOHgqt3ni9ki9ms1Z7jFBIjdrb8HcF3XwoJkViQNjqS94YBTW9SlP/JB8STUISB4FNRgOqaYtA3dOMPyjP/4mk0omxYPgvWgpY0Jl/uBsyWFjG1YtaBZ6QuON7eEnbhKw6Ri4s2XPn5GP/hn3Qw4o1h X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2025 12:03:24.9874 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e682fbc8-f3f6-421a-5db7-08dd7b4c5c27 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN3PEPF0000B36F.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB8440 X-Patchwork-Delegate: kuba@kernel.org According to the XGMAC specification, enabling features such as Layer 3 and Layer 4 Packet Filtering, Split Header, Receive Side Scaling (RSS), and Virtualized Network support automatically selects the IPC Full Checksum Offload Engine on the receive side. When RX checksum offload is disabled, these dependent features must also be disabled to prevent abnormal behavior caused by mismatched feature dependencies. Ensure that toggling RX checksum offload (disabling or enabling) properly disables or enables all dependent features, maintaining consistent and expected behavior in the network device. Cc: stable@vger.kernel.org Fixes: c5aa9e3b8156 ("amd-xgbe: Initial AMD 10GbE platform driver") Signed-off-by: Vishal Badole --- drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 8 ++++++-- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c index 429c5e1444d8..48a474337d96 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c @@ -3764,8 +3764,12 @@ static int xgbe_init(struct xgbe_prv_data *pdata) xgbe_config_tx_coalesce(pdata); xgbe_config_rx_buffer_size(pdata); xgbe_config_tso_mode(pdata); - xgbe_config_sph_mode(pdata); - xgbe_config_rss(pdata); + + if (pdata->netdev->features & NETIF_F_RXCSUM) { + xgbe_config_sph_mode(pdata); + xgbe_config_rss(pdata); + } + desc_if->wrapper_tx_desc_init(pdata); desc_if->wrapper_rx_desc_init(pdata); xgbe_enable_dma_interrupts(pdata); diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index f249f89fec38..0146af7f93cd 100755 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c @@ -2267,6 +2267,16 @@ static netdev_features_t xgbe_fix_features(struct net_device *netdev, } } + if (features & NETIF_F_RXCSUM) { + netdev_notice(netdev, + "forcing receive hashing on\n"); + features |= NETIF_F_RXHASH; + } else { + netdev_notice(netdev, + "forcing receive hashing off\n"); + features &= ~NETIF_F_RXHASH; + } + return features; } @@ -2290,10 +2300,15 @@ static int xgbe_set_features(struct net_device *netdev, if (ret) return ret; - if ((features & NETIF_F_RXCSUM) && !rxcsum) + if ((features & NETIF_F_RXCSUM) && !rxcsum) { + hw_if->enable_sph(pdata); + hw_if->enable_vxlan(pdata); hw_if->enable_rx_csum(pdata); - else if (!(features & NETIF_F_RXCSUM) && rxcsum) + } else if (!(features & NETIF_F_RXCSUM) && rxcsum) { + hw_if->disable_sph(pdata); + hw_if->disable_vxlan(pdata); hw_if->disable_rx_csum(pdata); + } if ((features & NETIF_F_HW_VLAN_CTAG_RX) && !rxvlan) hw_if->enable_rx_vlan_stripping(pdata);