From nobody Fri Oct 3 12:12:04 2025 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011018.outbound.protection.outlook.com [52.101.65.18]) (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 50973248867; Sun, 31 Aug 2025 21:16:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756674993; cv=fail; b=eDO2DYfNKHKoGzvoZncKxxQsiWAGem5G8GRwSNrd3PpCioIwq3hJ5Op3gDNjf8UcboLyntSJ992Nz+2A0/eIJbEF9hyrxA7ou8c0qIXlyQNBureLjksnC1pox1AHTo+xnbotihsMQk0cfyFv1WY9KPIODn7n7ehBewJ2tvQ4Fxw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756674993; c=relaxed/simple; bh=N5Nmf0khp7HrYTcY5Kh4Cru8V2Gvi0r1aGA9q6F9W40=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kbkJSyr5jt1ktnFQlAKsjgR7MR643xJ41kMeptdO45cyLQrkuhdkGdO2le1xK9/RVGUWxI/IqEOaIhX1xoP+pcVSIne8Dn/MlGYZQRJonihkRJDDFCgZQ7O9lIiMqPQFu4Z2sP8WktzvoohJVe3SMNROzFpPfmFC4bXZDdljPJ8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=FbSUjojX; arc=fail smtp.client-ip=52.101.65.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="FbSUjojX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oX2qi5Y495qLqJUefHMFgynrBd1BRWG/uOMWK2l52oKr0RKtAKRS9u6sb9Kp85BjYJNqN8tzE8JvDhO/AalF+5uhIZ5zc5K7433eMhpsYQPzyUkA/P6Lo5Sm9ksHJR4S39jWhT638LDV11YfXX/pABmmPwfJWR0ceElS7xfCFxOA7VBH2SEVNFipw+xlEoLmtiuaCWzTGxMACMLf7kzJ61R4ZFgp2xNJ/JloClahJuHwgSSCzVWvqdujmrCMKFSmi6SGknmWoI9Fb9/qaavZcSkKiSgeTYPM2LCBTcbinnsVOIWPKcir3iGwWHzqnFq5mAroEP2eIpaX+qeD+zfADg== 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=Yl9Lte33e2di4/jQ3oRErJx2keP0XVawSj494Vka6l4=; b=GxlI9Se9D83PV+XELnX1EIF1d/1Z3Lw6mI05YI2zbgPneirYyWPTMbrErZfbhIIBzRySDLKOgFXwgRnVdIdoSrW+VGbxt6IILB/U/lvbA0yEoyNDINNq5Q04HLK4bAPtsV6Cavx8DXiWCB/8qDEbERxuHBDkLPln3pXUTpRJE4zeLsSj5v+wQ6vuCbCrtqyOmQENEj6/sovV2+8OzStB/bsi9XycSbtAnn2O86JHUO1G1Pv3Nh6tTpOLy0Bvu/VqK4CmJUyYt/Zu3lg5l+F+T06D+YlOecE4+blZWjzB7Y/qBKsqeAmXm3C5Yd30/zi2M2Tb0sM9SUXdXiAJvem1iw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Yl9Lte33e2di4/jQ3oRErJx2keP0XVawSj494Vka6l4=; b=FbSUjojXCJMqoNOYSdvBChbPWHyBecW5u1bFrc5TDmM7StBPfKPJnPlvugyEZR9CllNN07Tkvge354eTDFX7tec1XVbIF885dMfxMuMhzhEJPTyAKYJmjgc/ZlJUbxdSsw/1GVMVfueJZvBahha3WRpUn0tzt2M92ojfpVkUkuFOUOPGA4IBIft0R/SMRsyupgUH6jtik4arZh+TpuRdz6ZNcGB4tstomeR0x3wCSjrYqOAAdgF1U11lDTDHMW3m9GJKhP02+pMWx2bpa1osEeuihUHaMKKFlkjNQaS1d7VF8FDdMwpbWuEKrS8BJZNWmjBJEIiz//0HTBicfxrBwA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) by DB9PR04MB8250.eurprd04.prod.outlook.com (2603:10a6:10:245::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.25; Sun, 31 Aug 2025 21:16:28 +0000 Received: from PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612]) by PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612%7]) with mapi id 15.20.9094.015; Sun, 31 Aug 2025 21:16:28 +0000 From: Shenwei Wang To: Wei Fang , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend Cc: Shenwei Wang , Clark Wang , Stanislav Fomichev , imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-imx@nxp.com, Andrew Lunn Subject: [PATCH v4 net-next 1/5] net: fec: use a member variable for maximum buffer size Date: Sun, 31 Aug 2025 16:15:53 -0500 Message-ID: <20250831211557.190141-2-shenwei.wang@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250831211557.190141-1-shenwei.wang@nxp.com> References: <20250831211557.190141-1-shenwei.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0178.namprd13.prod.outlook.com (2603:10b6:a03:2c7::33) To PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9185:EE_|DB9PR04MB8250:EE_ X-MS-Office365-Filtering-Correlation-Id: 94d08be4-06c8-4dfa-11bc-08dde8d3a674 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|19092799006|52116014|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?WOE0oqn87nD0Gxq2EMIF1p+MJso4YMdj4bicasPW8walzZ0kNBlsYHDUvohT?= =?us-ascii?Q?wmp5Ma/D80x5LC5MZ+K03/O/+wHRgy79hr3dAejG0LB5fkEW4gFhEjd9OcBl?= =?us-ascii?Q?Jv8MlFhdawurR0rl8ZJj/hR/J0vAvuLqaE7wxcZVGWx79/QVX8JXdSaOa/3x?= =?us-ascii?Q?msHrs97ZPNwR1haZKOBrSmKvBoZMWbopPSqqpP6sz2iK2s3uUpjxAJJT+M4T?= =?us-ascii?Q?ZfLaYejCts1VolwKLtSLb+rQ8LlGwTAvYy7luRY+lJox1baOO/t4CJwGW+hO?= =?us-ascii?Q?w3cJhAFFiWEyqP5tRi4oUfqz/dxpjrIE6n1+50aoLLsRi53/+8b7zYfRUuC+?= =?us-ascii?Q?CLYbtG311OzgpkLjeoQX79qySVDUt24JAGwvl1JNp/PHHC5Jbyq51FrZc1y6?= =?us-ascii?Q?LfyA65mmE/Zdk50zifjnQJcgORu8zkjPaTOQE9tyL6I75fVqsFFsO9w/3BdV?= =?us-ascii?Q?K4dX60jhkz8gzBCUzr/EybNyQB9xnLkWOPEmbqVyg6SAhM5HSWsHmRx2+2J0?= =?us-ascii?Q?cuj822ne32avFwX5zor+5nnBSUs4N/BSxUHAnXMMq5SDzSjS5LrmSn6rxGwJ?= =?us-ascii?Q?rnwGAv+aVGjK4dEa9f/F/RgarlNmDiPk13zi87QXEUuJgTPFf2K6WzZ4FWAL?= =?us-ascii?Q?uC16edH9A6mZIXHCIwetXRaxNIjUYwdtBf1FYla2CJQFECD+l4iLp1PDJtIn?= =?us-ascii?Q?224bzYEoYXVc9tNQciAdfZfmQxmJEsq7Zs5v5G6Q5qTZVXtSf6RunrSmC7kL?= =?us-ascii?Q?hO8bW6+f9EcU/Z+6sMcuC0rlJwHLOmJJp/s0A7t338XHOzP2jkKM3Kb06Tik?= =?us-ascii?Q?PNlIqu1s81RttKpi1jIuxZPOAlpQydk/akjNk0FZXd5M3dXSuOMAcnUpwwEV?= =?us-ascii?Q?mOkhofGf75mIEWrarFcdbIgLOIYsVvwcjYVHJ+65FEkI2qzcCAtkSUZh8iru?= =?us-ascii?Q?kudK2c1UDRzKccZlS4u82rVJ2mulTGONVMxZmYXdzlpT/5plb4fvJ2QnJ1ko?= =?us-ascii?Q?6U2MzvBSaPf2KBj0pLh7HcHuh20RLrNlh77Q4XftScMv2tUB/h5UmusgVHgY?= =?us-ascii?Q?p0C4wipg8rgHHq9aZmvS+PBpart4tErnTVcBddJ2u9kI19dc3jHjTdfBTN0S?= =?us-ascii?Q?AxyZN6ZdkooI686gd7gDr1hWsUMdJAfOwf+fdyyx1wiZw7DgAHtM4xBXirBP?= =?us-ascii?Q?pKGopXNqGSKr6ayN/TY1/2ULgowhbUwl5BVPyd4v9sN3bzwHnEw8JCkDp2A5?= =?us-ascii?Q?6CKv+3nkZK1+pdLtNPQ8XWM0lSboK3hI+HB1zubuCtooeMXITumbnelchYRv?= =?us-ascii?Q?roQ2pj4dawg2Dv2Mcr2JABaJLXBik1YXgQVUYtK5ILJcQJWPPmaK9xXX2cBx?= =?us-ascii?Q?p7bUzcPTPWvDDY9Esivk7/MmzJuL6Fpu+6faXseeICnZ+YgehtoaMeoKMErM?= =?us-ascii?Q?TDMVTRoh9wJhyqrw6QlRoyL9UzJUDB+nUZw6ixYZK38Qx4lJ0l3g67DsvPvj?= =?us-ascii?Q?tKWS71ilB6bbL8Y=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9185.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(19092799006)(52116014)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?OnNGnYdXL0g7TbuHIq6gETV57WgH00FQubl4Y0iRKszC/mIpj1WXbgHFGoNK?= =?us-ascii?Q?F7QiYRindNnu+UAm9mjDIoApJU9Krg+tN19BwVE6Fa3sN+fPN9UZxaylkuS3?= =?us-ascii?Q?KBKQBpnz0S0ws3ZnrRoAw/cjAH2OCZu7BqFy/ryc1sjqrd47nUBpt0vTQniM?= =?us-ascii?Q?BN40VCrzw9z6CrToN3URskcg3PleEW3vHwUFmrTyeqki2xD3PJ3r8gqm1bGM?= =?us-ascii?Q?eTEUEj5IlgBW5eGKwpXFgQCkQDYR0h5euBn5d2dIKc87iBgjawupg7e7voZQ?= =?us-ascii?Q?PAf+S0IExJe0srsM4A5lKnzBH11kEvVzp7dnnvlFcwmYW8sDzKcOy67k2z8K?= =?us-ascii?Q?MZxV1g1KXuSgZpJXOSroU3Bt2WgA3IoeSjoSDBRmIxL50PLQpwWf5whfDueW?= =?us-ascii?Q?9ZEcGNFLFQjAmNGi48NWvoVEyXXN4/tkAmCkznEsP6mHjzIoStW5JVvo1n1L?= =?us-ascii?Q?Z/9DyqmWFPDyhjim6+r2vWUWb5ksePD41dDSwKeJ5wnwRM9ZklnT8AmW1jXe?= =?us-ascii?Q?n8TkzoCHDouuIFMc/O/Uj5XBrBj1e4+hAP+26QEUo6oHNUOziVtpSNmFHt5a?= =?us-ascii?Q?ZJir+ut1CN7nIf5hn1ShkpdA+duiDN+TJK5v4OABb0qZGGuqjqkLI8dhiSNs?= =?us-ascii?Q?vbaiFLqHQ5l7aHP44EbUQeUHKfxk/LZSdzr8Ub+NDvjzN2c2fEk4dky8nKzj?= =?us-ascii?Q?Fz8KGuhL+rv7Ig8uLw2CwKhJGvrM5dyBXfLlSA7LDJFh5ZFiWjD1nJuLm75Y?= =?us-ascii?Q?tCQvkd+x3nEXMOnlcZz68YAjXJSvm2qx7Fv7BSJ0NKeXIphUlfTZgz69WGMl?= =?us-ascii?Q?H4zwagDEShOTFBzV7doHngsNjvnbToqheEcDyPgY0QWPSdsYnY5jGG/tUPHl?= =?us-ascii?Q?8gG97O8IMuukETj60ppnfBwVVAd0DarYN5pMf55I/wPuvYkYE4RIl3lAfwff?= =?us-ascii?Q?GI3HDa/oskpNdscBS0n0Y3B4aLwSfXl/EMU5ayY9wxr0Ksw/KqjX8K4T6crz?= =?us-ascii?Q?HhKeJUeyZJWleqwA2k+hfiiskZnCoT4EgT/JZpMS/jUtbW/f8jzQanB3l02K?= =?us-ascii?Q?qP9nxljxoF7rn9FoQ+3W9NZQ42qqHqH7xkaSkmQ6S/4LpCfcsttS6AomyW+k?= =?us-ascii?Q?Ec3YhoEXkdQx2bIVlpaTa4zM2pvfYfGaPTf8xl5x/Jl6+FznhxPEHoqkMnwy?= =?us-ascii?Q?7105L4ABnJtQ5h2M5dHkLntl5bIkiktbq5fCeY6dB2Dbp02fG8vtBsdSy1uV?= =?us-ascii?Q?9fQ1esp8crtQmTml+60WMQwj306EOm5Eu9KFa4+mJXfeBRkAh/ATCEPJtxXn?= =?us-ascii?Q?G1Y87b5SqsEvpLtoQCv8satmi884gk0CYFmqWMtXWX0EQqFkolTNkOpW3/x9?= =?us-ascii?Q?Py40wmRHmA5/Nxq+8S6oTPtAKhaLxZ0W4oVda21ykYjl2WWPAfIzPZB5cglK?= =?us-ascii?Q?H40xn/HRRBIfYpozFPF9VxgmPQzUKATetUFd5L/lP2ox2+vhY+xL6U3OZExz?= =?us-ascii?Q?beNfAq2RTf01PRPkYU0LY+Co7xZ+bJBlwsje0qEirxiI8bYELPkiEKReRHla?= =?us-ascii?Q?RjHTUufPBSO5jhyjN1Z4AMXFoFR7DX04QLoHtEvi?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94d08be4-06c8-4dfa-11bc-08dde8d3a674 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9185.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2025 21:16:28.6779 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zg0hel0rEzCyHKsVMIY2qPD/Z+laHFyZudAf7UGfv42H8gJAzQim1xvETDldVMvMMuCqKcVEUCxtPMGD+T+Yzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8250 Content-Type: text/plain; charset="utf-8" Refactor code to support Jumbo frame functionality by adding a member variable in the fec_enet_private structure to store PKT_MAXBUF_SIZE. Reviewed-by: Andrew Lunn Reviewed-by: Wei Fang Signed-off-by: Shenwei Wang --- drivers/net/ethernet/freescale/fec.h | 1 + drivers/net/ethernet/freescale/fec_main.c | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/fr= eescale/fec.h index 5c8fdcef759b..2969088dda09 100644 --- a/drivers/net/ethernet/freescale/fec.h +++ b/drivers/net/ethernet/freescale/fec.h @@ -619,6 +619,7 @@ struct fec_enet_private { unsigned int total_tx_ring_size; unsigned int total_rx_ring_size; + unsigned int max_buf_size; struct platform_device *pdev; diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethern= et/freescale/fec_main.c index 1383918f8a3f..5a21000aca59 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -253,7 +253,7 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address"); #if defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x= ) || \ defined(CONFIG_M520x) || defined(CONFIG_M532x) || defined(CONFIG_ARM) = || \ defined(CONFIG_ARM64) -#define OPT_FRAME_SIZE (PKT_MAXBUF_SIZE << 16) +#define OPT_FRAME_SIZE (fep->max_buf_size << 16) #else #define OPT_FRAME_SIZE 0 #endif @@ -1083,7 +1083,7 @@ static void fec_enet_enable_ring(struct net_device *n= dev) for (i =3D 0; i < fep->num_rx_queues; i++) { rxq =3D fep->rx_queue[i]; writel(rxq->bd.dma, fep->hwp + FEC_R_DES_START(i)); - writel(PKT_MAXBUF_SIZE, fep->hwp + FEC_R_BUFF_SIZE(i)); + writel(fep->max_buf_size, fep->hwp + FEC_R_BUFF_SIZE(i)); /* enable DMA1/2 */ if (i) @@ -1191,7 +1191,7 @@ fec_restart(struct net_device *ndev) else val &=3D ~FEC_RACC_OPTIONS; writel(val, fep->hwp + FEC_RACC); - writel(PKT_MAXBUF_SIZE, fep->hwp + FEC_FTRL); + writel(fep->max_buf_size, fep->hwp + FEC_FTRL); } #endif @@ -4559,7 +4559,8 @@ fec_probe(struct platform_device *pdev) fec_enet_clk_enable(ndev, false); pinctrl_pm_select_sleep_state(&pdev->dev); - ndev->max_mtu =3D PKT_MAXBUF_SIZE - ETH_HLEN - ETH_FCS_LEN; + fep->max_buf_size =3D PKT_MAXBUF_SIZE; + ndev->max_mtu =3D fep->max_buf_size - ETH_HLEN - ETH_FCS_LEN; ret =3D register_netdev(ndev); if (ret) -- 2.43.0 From nobody Fri Oct 3 12:12:04 2025 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013036.outbound.protection.outlook.com [40.107.162.36]) (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 00F643C17; Sun, 31 Aug 2025 21:16:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.36 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756674998; cv=fail; b=ivoAH/Mm5E4oLGTZkjZnb20D90T4ZCEZOEeWHauGcc/UmdbBitNl1sKM1Ml6adRGPL/4CFn6brVGfzHA3bMymU8oqaPN8QVhDJ2MagNq/kPkMjkHhpN8+xLXyR5Wq9WtCXT+ZqSWJheFV+0OlV4Bsx9rdOMnZhf553QNo9AH+Mw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756674998; c=relaxed/simple; bh=FOYor2uuPSV8S+RHskWBDCn+kede5xa4dXyab+5rfbE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Yqyu76d3X7lRFpI+sNLxDRS7JA6ksnt4sx4XSrmJvdpFI9c6qsthKcV/pLWJKGMaNHcE0JppQxvEr2VI52Wwcw+hjmolvhiJ+D5eoOlhnndH1nBqjsuavr2zzCQ8SR0XFhWg1JXTM9d6g+ugpizHnGmx2NqHy0Kqwqh+SEfI/EY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=KL8DhMln; arc=fail smtp.client-ip=40.107.162.36 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="KL8DhMln" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L3VTBV6iocs37FCfJLvQo0uB8xsTivukf8vMisXBIhO6nuUAWB42W6mAF+MjNSDwamEOF0hmOfsDvJ5WYlghMdNJz+fXT4jhKPCjQX3O5WlmX7Rn8LS0+hWycvXCZnxSRz2NImOFiv01DHiMVe21VTRxUe0iW+KZWUSns6xq8nsRTL9+p7FsIOSjH/HPWOkIYcYKqjWLFWxeSJyhS6hbIo8Dh9sZUm0xf0gCuqcB14INFXb4SOMUTILh0BD+jLrR36H4VxCD7naoFF1mjtDj7nVPrgfEj+mrpp+ljwk+VoXP9PfDtECll29PKPDG4rQldKxbq7nxK0i2EgU9wJx+ew== 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=IuezJhzR0YGaH5S5CFv85rVip4KJjz/7NPhUIT0CAUU=; b=qUj1p5fGlKMbA870XwDr88n5tZctZWClx+mxHNIxMDhNhJ+/cecG2nFgLk4DE/aFH4pMo3wbJCAAScrasBpEmg3Jt6q9GkSvFKOA9rus9Z2S13d/b3Roex8eoLg8YHTqDCCVVskrlNuyjE5eOzCjX4fwKQu49UbA08TxqaV8lFJGH3m1e6ZbHW8WZK9FseegBzouBkjCjxAzrs614xgZfBWYHiBr4cIaxMX9Eu6Dz9kHS9U6Afs2bvbtWqoh63eJgNR70Tv1pPZf3OsGvkUDJHpc4/t9aCC/M3M0CEHqoGnM2emn5ck3MGMujXBKt4fsuFZpwJtTKP0Tq1ydQp6wZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IuezJhzR0YGaH5S5CFv85rVip4KJjz/7NPhUIT0CAUU=; b=KL8DhMlnxW7twNSUdjF1z5oeJi3oUcGhPDwqszICzo9tdXgLxKL7ULD1nkAry5t2hxqUH+LjG++sj/uYSeF/IrjuMUvLxA4KX+De6SDYR+GvegDlJlVfZKMNukUCkG8SOT6AdbU7m+S8+fmL0imWmb5k8vO+KyuOWCuAIHsErwOOY9whYIB8OhP4TkaPXIMIG5rtia5uF7F+yzjxe9Co7j6VuEcVkO58zZIBWCx8wh8vuoU0tHgO3p424/I+/GYcJDFUFDKUwaeSpaled9yBzgpv1lmmCUaOZ4RxcyJBPG4mV/Aj1QptOCDJlIyzstC7D3ieK3e+RyQ/RSDdhDwW0g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) by DB9PR04MB8250.eurprd04.prod.outlook.com (2603:10a6:10:245::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.25; Sun, 31 Aug 2025 21:16:33 +0000 Received: from PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612]) by PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612%7]) with mapi id 15.20.9094.015; Sun, 31 Aug 2025 21:16:33 +0000 From: Shenwei Wang To: Wei Fang , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend Cc: Shenwei Wang , Clark Wang , Stanislav Fomichev , imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-imx@nxp.com, Andrew Lunn Subject: [PATCH v4 net-next 2/5] net: fec: add pagepool_order to support variable page size Date: Sun, 31 Aug 2025 16:15:54 -0500 Message-ID: <20250831211557.190141-3-shenwei.wang@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250831211557.190141-1-shenwei.wang@nxp.com> References: <20250831211557.190141-1-shenwei.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY3PR05CA0045.namprd05.prod.outlook.com (2603:10b6:a03:39b::20) To PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9185:EE_|DB9PR04MB8250:EE_ X-MS-Office365-Filtering-Correlation-Id: 717abf2c-b8c0-492b-eb17-08dde8d3a95c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|19092799006|52116014|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LAO5Cz724icb52HoPvxbylH3xlfJErB1uRZCFLY5rkKDf6d+JUVFCDBzxfcS?= =?us-ascii?Q?ET6J/yTI9mfqAem+aDB+pf/q7plaJ7BZcEysIaRHs6zyxtxzVozaxPdqUUCn?= =?us-ascii?Q?6ZVtuQZSaL/gX6IFAzJcHHAbPw8jJOYB1bzyS3c9E9AFVBJ6jdybBA+pLUjM?= =?us-ascii?Q?oN2V0nd0DBx8+Y3cvwkHLbLmockku49xFR/oTMgxg7fuAwBHvEDU23XaUofF?= =?us-ascii?Q?DiX70ZKthNIbIBwkfEr+cLPiese1Vs7zCkP3WvRB5E45U/FGye0Txn/sKIwZ?= =?us-ascii?Q?o0i9mwA0Cvg6EeEQIpBUl7odcawtF56YXmYKJ789OdIW0cQTxtC3fXu/XfFC?= =?us-ascii?Q?Q+oprtQO4pJbr0fvSTakke1iePuPMLc8XRyz9E/tSVneIFWnwVQSEGT/5gir?= =?us-ascii?Q?OiwSye8JKse0GxVoNJyIvRb+PZWk8gUBogKC5AZuEXUFViDVHhXz/rmp/XV8?= =?us-ascii?Q?1RNiXdeiNWFZ0POA3bx8geDV3D1L60RkTtLeJlHdwut6w4vBrnaIoGBEyG2I?= =?us-ascii?Q?U/yGuPWptY+GaegYTYj2rkS+RV33MEa7hKGu8qd+Sw61Si2E7UwwkENeM/YN?= =?us-ascii?Q?2c2rMcSOVRYF5pnxDTYNUELRo0EKLu4dfoThZoU4iBrIKTaFc96EVV8/RNIU?= =?us-ascii?Q?3+WoUZhLCYCwJl9ZWxwy1tqhSk9edeZeGsY5/Rs+W8ShlmJv2bHl2A1UjCXN?= =?us-ascii?Q?FJ+WRgd7NptDmQXfmg+rnk5/4bgIrNAIvNPCW4QYFduOfvWXePyKat4Osly5?= =?us-ascii?Q?MWmmhzOtWoa4Iirn1F/sVoU1IemA2cOP8a70RU/7kBl5AGa5iNezc683TmCS?= =?us-ascii?Q?hbcAOp03a1kX7QzKlQ3Ss6Om5eObtEBGrm5z0PO6m75LP9g358WOSBnKxzcD?= =?us-ascii?Q?Ltl3YPK6vX46FFtgSqUnSUSRhWpdURg2EvinXvqRoWJcHitnMARR+CVQ5OCw?= =?us-ascii?Q?8OYr15xop3g5tpdwpS05Ku40CFn5+B0qJr1DYW04mp3Zvi+ss4oYmA7f2/cV?= =?us-ascii?Q?q5sBZP5n2XY8ENQQzZ9iF225NIJJjnKQpMIc4ouyZSz+ctqaZoa3JshWkvPV?= =?us-ascii?Q?xvIoKs7J1TCObkKOd1ymex7x80jHZ9PJGOsaJu84L2yT5PMzG7BuH86G+QYY?= =?us-ascii?Q?jpGM+ZJTlphomKbd4+T7K+boU7q2QBGBMtBiunhrPkl/C2ujHsGQSx8MCvjc?= =?us-ascii?Q?MLcwbObBteojDH3n0XqyGyC1Jp2KoXiCJxqek5JBvByzihcgrxNvthJpkORT?= =?us-ascii?Q?locz7pbul593Gc4MSUO//LTV18cteAPcK9KSJFpe5M0Ay9jlEA7J83F9VhVi?= =?us-ascii?Q?W7/XofVeGm/es6AiVEbceiSizzUhO8NpFmhRv5PduUa6LXw2gTWAvq8Kty3A?= =?us-ascii?Q?i7LR01fV0Dh/UY2UadWY+z5c6l0UMimJpqo/EDW4ZeQhhWk6EbZJo0JCSk0c?= =?us-ascii?Q?hjkOK5C3XZS6rwjeeRUZDaQWRL4D3NNbRajNfLZoylP3w0o6CIxotBpO2A5z?= =?us-ascii?Q?fbzYSIsnRgaFDsU=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9185.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(19092799006)(52116014)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?36Ma48xnK4C5ayQ0RXi10Bg525P4A3CDaPZEovxFt9gvs5IPkoYHtVFQIHqA?= =?us-ascii?Q?fS7328aLgZZLwHjqhvIHXOatr3mkNECcHJLWE1Lx6ysic5e1JdFIzsHzzx4f?= =?us-ascii?Q?nw/1CbFN50unydVCWkj1ZPUfNjOcATUDTxKuOWCYz9YxmX9wFP/pnP5BicW4?= =?us-ascii?Q?y9arRtD9CXugDn3TkjlX9V7FmEDniJoRzvmL2wsOKhQcm3S9yGq/IuDlowRT?= =?us-ascii?Q?NZ0LwklaM/MEmNav1EpcdJz2xVnT9VTXfieZe5hsrok4Wfm6KAD8DIL3cvXG?= =?us-ascii?Q?j8hmihkKyb+jgpjcPt4sWXoltV/+lvtodHTeFsYcqwo+k2YVHmqQexuwFzZo?= =?us-ascii?Q?vm5+Pdx1xeXTxJ0UEBNpMpNqiVlxx2ZeK+vaWdKowpBeKBncQmKLdwQwOl7d?= =?us-ascii?Q?BHMIMoiOyLMuqYAtSv+QG8UNAnULcVWVeUCsQGySUfGd2EgwlFsvUj4b24at?= =?us-ascii?Q?BsguJk2evtp40Q2MxL9nIRTPFFw2qb8+rQYhky0wNdwGE5oTyP0jIZhq2yjh?= =?us-ascii?Q?Pf0sE5hwD5OhGm0PTQQBg3we9kAkeV8OMpSHWmHufiEgW0tTF9JTPO6pgbXq?= =?us-ascii?Q?8IJI2wbsanvgHQTFM45D95juufLZZLLl4u/tV8/bnne3B7BQW6+xeasyjh8o?= =?us-ascii?Q?wnLPjEfiV2jdb+6PWseCUXeK4alV2gPHuRNJAfjmyuBiBiJiiTQOIdqN/sM0?= =?us-ascii?Q?g4YI17cVCBw6Rgh/bnOa04O+WW3jCuOepp5rr+IHSBjSs/p/kecqb6s52zLS?= =?us-ascii?Q?ixoWB/UmryCAFGRA8Qm6QLwnr7dIWguFPZBzNXawBTKrCu90gJDuSBBQJEzF?= =?us-ascii?Q?4+m5nDg9NpC26cYC6ZalpNotWUcAdUWxdL89+o57Wvpkz7qwe7QuYhQ8eQeG?= =?us-ascii?Q?hJO12RZIar9/cd7z+J/JOVI1OpaiVTJ+5QOJIscubfNFAXfh+f0gGKDwP/GQ?= =?us-ascii?Q?IZy5PtKva1vcPQiUSo02q/+GeWObTaYr2xM1CrK5iXvcskkYBTKMQUbd3ni6?= =?us-ascii?Q?wa01fsZ5ek1nSsqHfXnHxIdVdsB+6Z1hv4W2bAZamP9UND0Lz93FrYWwYWxW?= =?us-ascii?Q?qP2n/6JW5Pw34zT2EIavlomaOfb+tnmsKkCsgoeGgQfmKhX+fiGycK8Z1SjI?= =?us-ascii?Q?MgcN6V1aqUkYsYgNueNLpvs+uLmmx+m2TYzsgw1F1RCNoxI8L8opXPCW0BJT?= =?us-ascii?Q?LQ1+J8m1f+C1UrLWtdDEwiPl7ptCKo7ywvj8T//Ljt7hHaOXlJPiEv9bSEHx?= =?us-ascii?Q?yhTh7VZfkkWUN+DTVHwjGGtSELLiJhMGkYHIHmerxEzk397sctpoSGSas7hr?= =?us-ascii?Q?5Ycs5iAQz5b7R5DQKR3fc15sbWufi1c0bM81mjxdNGme/jIOQrnsEMo7hnzV?= =?us-ascii?Q?+g+meoeF+KvV1PpDVFjnaTjO2nhGDj5fHQj53A5jy5OwcHw6G9t+KYk+ZQ18?= =?us-ascii?Q?3bVyFNNgwMm2iTooHUBCGJeLOcrp0AGOVIt8nCI53K7t1WaB3m4uoabziw+2?= =?us-ascii?Q?q1FMtIBRSn2SSuQzhDm/lLUGRxfKYrU5gQByeaTtD0XqvTcxzt1OHxoJtFNh?= =?us-ascii?Q?h4tBXBGOclv0/sO2GVu/Y1iip8kIbDU9tnXwk/6C?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 717abf2c-b8c0-492b-eb17-08dde8d3a95c X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9185.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2025 21:16:33.5266 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ok2fmVAS9yix241bPZ6SD2VcmmbZwTU1Du+kM4G0EjngEfpKG9mGeSxBBl2o+FEf78VCsYOP2qJDoS3o7SMXkQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8250 Content-Type: text/plain; charset="utf-8" Add a new pagepool_order member in the fec_enet_private struct to allow dynamic configuration of page size for an instance. This change clears the hardcoded page size assumptions. Reviewed-by: Andrew Lunn Signed-off-by: Shenwei Wang --- drivers/net/ethernet/freescale/fec.h | 1 + drivers/net/ethernet/freescale/fec_main.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/fr= eescale/fec.h index 2969088dda09..47317346b2f3 100644 --- a/drivers/net/ethernet/freescale/fec.h +++ b/drivers/net/ethernet/freescale/fec.h @@ -620,6 +620,7 @@ struct fec_enet_private { unsigned int total_tx_ring_size; unsigned int total_rx_ring_size; unsigned int max_buf_size; + unsigned int pagepool_order; struct platform_device *pdev; diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethern= et/freescale/fec_main.c index 5a21000aca59..f046d32a62fb 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -1780,7 +1780,7 @@ fec_enet_rx_queue(struct net_device *ndev, u16 queue_= id, int budget) * These get messed up if we get called due to a busy condition. */ bdp =3D rxq->bd.cur; - xdp_init_buff(&xdp, PAGE_SIZE, &rxq->xdp_rxq); + xdp_init_buff(&xdp, (PAGE_SIZE << fep->pagepool_order), &rxq->xdp_rxq); while (!((status =3D fec16_to_cpu(bdp->cbd_sc)) & BD_ENET_RX_EMPTY)) { @@ -1850,7 +1850,7 @@ fec_enet_rx_queue(struct net_device *ndev, u16 queue_= id, int budget) * include that when passing upstream as it messes up * bridging applications. */ - skb =3D build_skb(page_address(page), PAGE_SIZE); + skb =3D build_skb(page_address(page), (PAGE_SIZE << fep->pagepool_order)= ); if (unlikely(!skb)) { page_pool_recycle_direct(rxq->page_pool, page); ndev->stats.rx_dropped++; @@ -4559,6 +4559,7 @@ fec_probe(struct platform_device *pdev) fec_enet_clk_enable(ndev, false); pinctrl_pm_select_sleep_state(&pdev->dev); + fep->pagepool_order =3D 0; fep->max_buf_size =3D PKT_MAXBUF_SIZE; ndev->max_mtu =3D fep->max_buf_size - ETH_HLEN - ETH_FCS_LEN; -- 2.43.0 From nobody Fri Oct 3 12:12:04 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011025.outbound.protection.outlook.com [40.107.130.25]) (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 69DFE2737E1; Sun, 31 Aug 2025 21:16:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756675003; cv=fail; b=QupqKbT2KxNehD8ysCzQ6w2dGhPN3pehAWFGcEk1/ec38dkvTWXsboxlLfDWgO5dxjKqaXqO4KuR68/CNOH4d8z5rpYEehYk6PEUXp3RPEwbfb5aWv83MM1kAsJw74AJVghprk5TaqNihUrCj+cj+UMZSc8GZDnumKMdO91kkHI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756675003; c=relaxed/simple; bh=tA0zzrO+ELa+PMMlwICt29AqofS5ReJuWzTDAz5ZRqQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=PAeDb1YiRsq0K61NVUsw0CHj6Z1+Ya61Jk1AH3OT8WDa8N6IzyGv8J+BVh1mPPgIImZYkrx/1nuooAibz41tORNhhR1+6pPqdXug2MNgYPNIv+u+mEqyhPvKyyMcR0ESAAagV7XmXuhHGphJF/Qv8fforRo87lC0rRLnCrJxzPs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=RlptLZzr; arc=fail smtp.client-ip=40.107.130.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="RlptLZzr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=I0Uekykfxc4oEVYZXzKADP4G+NuVru8E65ku77DWVaeXzAS9W+ofWPk+ThVTV2aZXGV7M2NvuAErmWGME9x92HHdaKauxB5La0IcCUZWLB9aghWakN52Noyl2vg+VwoVVi7VFL/9qFIzLoU1JLKRsQHiX+Nb21Fo/bdgh/Q/fMFtvhqSlOe6NIwF07zas8NDqkYHyPM7FBASV0JnHWrJOS1VUXZdzXO4OYEFE2w8zH1C7Dyd2Omahdy1s5YjvxA/C+OXlPalBXZ2nJB7VHsTaWZfkVA8mAH0brrMbUAS5DKcdhMOQEuQC2Lm67aZi6r+zFMt9Pt3PmI9ugyR+Hf8Mw== 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=5NrKOz0zLXTaILrsCQFv6thc73C7pbL2G1aMvA9naMk=; b=eEpLqp2TwdQ34Zx4pufh4PTf7TcbVmGKA1CTOXw0krUwx1U2cAWCdjoyOwvz774qCXGm/fB15ARCx9FdEi9Orld2apzeUbrKwx1GZv1B9GRcZEa1KLXOzFIXvpZh/Zfhi+LEZNCBTAljuRv3qbyBDyQ+vLf8l++WBsMCofphrWo4rdIQxDFr/tB7x7hK60d6T0EO5aTDS8Lilk06NyPUv8tiLqGtOxGMXoi41avTTnrNxiRJ9cfWQT25FPUsUbq1DsYsRBm7Qap+dLoAJV+sT1QtgRjSB8MB/kIny8tysRkveNWeii4IxKjUeaK7RMpv10mNdsZfCuE8LLMLhC04/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5NrKOz0zLXTaILrsCQFv6thc73C7pbL2G1aMvA9naMk=; b=RlptLZzrDhyD0mwRiOepc2juR9j+RNMFwxRHsgPGQSm93WjGqGvl6RI5jYV3PG/qAnaXAqyaXHPxeONroPrwSBTwuYFHV96saYf3M8Bfluj9EGCtUlr3lpKisLHcpmnqsxRQubzXp/eqbS4W7YgW4hCYfGffxUFZPq3yxABTZHNxLM8jbcWcpOhojnQdm28+ZsnkrVOtkGrJo71v2ys30PIZH0NwmlZsOZe0q/O1H1CUABrHvi0U+8EXe0hn1yYNSWYDY+b+N9oBPWjrAF/LKPcsNbj92sXoJzMM5TfoU8znzo/On3/ZipvDQTkXSp2lB6nkrLSokEGUlOqoSFVCuA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) by DB9PR04MB8250.eurprd04.prod.outlook.com (2603:10a6:10:245::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.25; Sun, 31 Aug 2025 21:16:38 +0000 Received: from PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612]) by PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612%7]) with mapi id 15.20.9094.015; Sun, 31 Aug 2025 21:16:38 +0000 From: Shenwei Wang To: Wei Fang , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend Cc: Shenwei Wang , Clark Wang , Stanislav Fomichev , imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-imx@nxp.com Subject: [PATCH v4 net-next 3/5] net: fec: add rx_frame_size to support configurable RX length Date: Sun, 31 Aug 2025 16:15:55 -0500 Message-ID: <20250831211557.190141-4-shenwei.wang@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250831211557.190141-1-shenwei.wang@nxp.com> References: <20250831211557.190141-1-shenwei.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR07CA0075.namprd07.prod.outlook.com (2603:10b6:a03:12b::16) To PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9185:EE_|DB9PR04MB8250:EE_ X-MS-Office365-Filtering-Correlation-Id: 04750abc-0f62-424d-4b0d-08dde8d3ac74 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|19092799006|52116014|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?56SQVR0EHCyh8T/D0sBzzeaUWfootyijM7zzNub7bgoqeaZJWxsCLvL+jKUy?= =?us-ascii?Q?SBGxAjTG5epWDc1GjFgV1CM9xUBkq63IYmL9QTXfjkSZzkDoCy2mwYAXBkCU?= =?us-ascii?Q?nZULI2RwDaIBioWQSF9ASM3OcGW6VHV1jd3iFNgTcEvWj1e3/bbDQ8xXt2x4?= =?us-ascii?Q?vmr40N4MKCk+e9wjt8sCFTx7cK4v+0UsO8wEpHXyKHVPdfCgoJdY6Eq2iBvy?= =?us-ascii?Q?hbcaSPVgTNgQ0k4Xn5bHZyyTZdt77GxIPu4bWsOFir70Qz8nz+jm34d2va28?= =?us-ascii?Q?ctE7TccSbj7L1ETgi/6BtgEmDUx3GxgESsgvSrAbme8U35ea06oAWb+AKGtW?= =?us-ascii?Q?pOtlZZpDYCbmyVOw8WqseZpPh5aOXb4j93qKaRowONtvWG2UDT0dP78rVagV?= =?us-ascii?Q?eqcJy7m74wr2mZVCplwhsM/1Vknbamf6OPSeaQN1Er+mmVlyt17JHaMqzvRZ?= =?us-ascii?Q?qwEkuRNMYzc0kZP4VYV8vcoLnxYNpT5pk6xc543mGH4UzxElJiXwjp48npzx?= =?us-ascii?Q?uBuZ3PmihA+YCAVTakCfEMFnFCE7b+uU1TFj9gooL4BqogX1izH1jfF4teVP?= =?us-ascii?Q?GqnDTXmzK6AmMnKRgp1XmVCK3pgaE3tPkrohI0Amemavq4nw/3XidN1EZG2F?= =?us-ascii?Q?ODVj9X6JKVtZvYoftdpmzFon79PQt1XrhxI5xfXN9QH1hBzLt5TzwZqNSkZ6?= =?us-ascii?Q?ES2ASVEpXoEf9KfkkXVnFozTU5ewdlHGvvMCm6g90U6R35VueejODeIFjgHy?= =?us-ascii?Q?5wj9ZC/si6O5XHj/YKXnrs9F0QXWEJSbNhAzDpqAbd9Lp2U8jhnDpGrWVj/q?= =?us-ascii?Q?b71rvfAs8DSJTEu46J7v2kAe30DELcSSwmLU0PKmFAmTHfM7Ihe0PajuKpwD?= =?us-ascii?Q?qqm+bVKD3rIga5wIzh/Lmw5JZNfqsvtPaDn6+1itCBcReHDuftVYu7QYe1Am?= =?us-ascii?Q?iOc5GIg79u3WlV/hTJ/UjX5FjN4L2JeakFxQhLTiyeIm4luzzu97E2vmf9QY?= =?us-ascii?Q?JTMb/PNtuEKcNlwc8ZqSzkQd9mY3JszG3rNlMUaxz7M65cFwRo9i1yk5ij3y?= =?us-ascii?Q?sSGMQPXhtS2P3DOZkvMrkj7RjIIK7YCgO6vfXwLm+c/aAs0gatpkGmouJKeu?= =?us-ascii?Q?I3mXNDqJZ7FuUe3j9TztpOBicBUjQ+lJj5X2Dvr+CcZasNaw4NUEgLwuqhsM?= =?us-ascii?Q?EOUT0w/8FMy9Ket3cNDarUrl9univ1gGnieahe+ZaM3pqmEPf/VllPnF3XwH?= =?us-ascii?Q?WAnp55vAsyeDiXDBJk3e/5x5+P39UpFRsZ7TNWzQZvEQ7Wd5kTF7Q10rJr7S?= =?us-ascii?Q?3TlM1N3TOTyYYcIejT4Yt40RmkcyteEv+MPoO6UqJLhlEcoEyue5Rn3fKzYW?= =?us-ascii?Q?tUs/4Dcu0hkCQnQHsQSuEdG5yWb+sKXQRtzrmlsRpdZMJ/43+6h0Ii3rI0cl?= =?us-ascii?Q?ruRc+wh+QYq6bgtxHJV9TBn5BV4KgXTd5QtEaznQ8YF4vsKKUc9Urjtw9aIn?= =?us-ascii?Q?EeNJgheW1X1HZDk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9185.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(19092799006)(52116014)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iWaUbV57ONBhsUCyTgv8hyFvW4S823hqJ89w1ZB1AWDgb8iwE0x1sDx8bjSd?= =?us-ascii?Q?yX7w0IszTo5gcaEle5CpO4f+fBnF9bgCW9yfGNu+qDRYbRmN8YiGRdvamRSj?= =?us-ascii?Q?sokU2pSdkFWsvGmpKma35LgkZUoTRGfvcUy6z8ClZJCnw4HsM6TPZI+jY5I1?= =?us-ascii?Q?SDsm8MrFemHLyuuCar9gU2a6dg2mjILg2zj+P/Fl+78ecaG3vsz+inJ3pzLg?= =?us-ascii?Q?1AzVtY5ERAKcrSAjtMQ9gykkwjuLbUpgZk0/VRerl7ypmJ6OVzWVKjeLz/wB?= =?us-ascii?Q?5nC0BsVwc4QxTjLW0aeRTIhPNZsyO9as1/11B1voBr9ie4Kt/ROiKBp9GlwQ?= =?us-ascii?Q?YP3LfxIBooFsk6hNZ7ZTCUyFW4ZpaeQP8Uag7u2ZUl/XXUAMUYXoG+l2AKBv?= =?us-ascii?Q?8ey2PfO20xcFOWJuAFDWtXe5jG2qiOk/oPfVS54/tV2Hvnrvb8f5VwSZO8S4?= =?us-ascii?Q?T46IcliWk6PSd+qnA1HZbY2UPF73SM0z+wWaBClriitMKnMrvYXEw44E/ECB?= =?us-ascii?Q?8dWLZH7mxZgnR34/VU/PIMZdyBKC496B8TICc5CGnzJXryMiTAHBKPp0oEtv?= =?us-ascii?Q?A7kGClzgmhgqrzyvXRgXs3ov+tlOTXgIvHfnBptrox/uoX5rcjtr1dW3/jQ2?= =?us-ascii?Q?7jXprIm2Nt/Ef+jBvSQZfBuVtF7QRVyPu2Y0AlkeOwHTsxxwpLu2l4Ew+HSL?= =?us-ascii?Q?WqkgNt38PCqczgld+sTuPPDYvx7WNr5wjM4+10+k6SgMkBg/3WZcJhMpr+G+?= =?us-ascii?Q?e8O8KosbwKthxNggJFt01Nwn1KmGifUd+CKrlW26R1+wXL0ibr0lnSLRNtg+?= =?us-ascii?Q?pPfPoh7SBO0YD5ExdEKUQ2iTB7xKRQzd4AvdeSWsmIE7LctOhRT1BXVK8Eb7?= =?us-ascii?Q?JJP87kaKkbydiNnlCLvc9vx6DLeQpxGzeYLQVDqartczdlVf2treoguzrP43?= =?us-ascii?Q?8LLLjbZRbD+K1OMhbv9J5ILhRZG6FFmdEIN8l2F2H88ezP+WkBXYsYGpuyAo?= =?us-ascii?Q?arChh7mIsuMomazpAUwYYeiJUoz1euWCDinCYGh7ANxobFT5gtDzt9hJ+MxW?= =?us-ascii?Q?Cw7k2Fm4ZOIf4kftZH4Tbbqk/J0vwjgukpT6C03WvM0InrQb7wnu5jBFlnzE?= =?us-ascii?Q?suJ0e6bRNs754blD33SEzhHZS5xDw7HVHQnYeHdQK5ZoOyFvvuSXhwl0FAns?= =?us-ascii?Q?GSEK8E6DsRA8JOgQqWEFfEvBScuiH6uYIhH7YmHwjXkace6cjgVdI8hfiIZq?= =?us-ascii?Q?QVOgGWf4C4cJfAxUyrvyA/c7gBdRP7paXSvdDoyxVIillpgFuaRAjy3Xbr7F?= =?us-ascii?Q?zR+eXavoDqUh66J2wJTAfVdq4Jl3D6NLGFjoIKzqDBGRONiGXnI8sGA1ERiY?= =?us-ascii?Q?FTXy72zhgk0G33eYzj+W9cHWPn8JrR/XI7XTLiQ175vjJbf7JRaw+wNWgViU?= =?us-ascii?Q?jk85fbd1bOvOBJGh9eLKRAuY3B6ckJTqpCrEIsiQX/WiLQo+waofhC4xFUP9?= =?us-ascii?Q?fYNd71K64RicH7d1oMARINIL+isTZ/XI3CugVlWYBD4GZlwS3G5RFIRth1b5?= =?us-ascii?Q?jQ8Not2oJ0JwShxzh86VASzeA4c0KVLwH6K2sqyd?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04750abc-0f62-424d-4b0d-08dde8d3ac74 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9185.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2025 21:16:38.7016 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VMzr5ibctX3e2PLJZXBkh9gCHp1AnagIqQ3jwkXHr6uGUgJxJqW5NV0MCZBeSz8tlWGHs4AaHu1g8gb0MHFG/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8250 Content-Type: text/plain; charset="utf-8" Add a new rx_frame_size member in the fec_enet_private structure to track the RX buffer size. On the Jumbo frame enabled system, the value will be recalculated whenever the MTU is updated, allowing the driver to allocate RX buffer efficiently. Configure the MAX_FL (Maximum Frame Length) based on the current MTU, by changing the OPT_FRAME_SIZE macro. Configure the TRUNC_FL (Frame Truncation Length) based on the smaller value between max_buf_size nad the rx_frame_size to maintain consistent RX error behavior, regardless of whether Jumbo frames are enabled. Signed-off-by: Shenwei Wang --- drivers/net/ethernet/freescale/fec.h | 1 + drivers/net/ethernet/freescale/fec_main.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/fr= eescale/fec.h index 47317346b2f3..f1032a11aa76 100644 --- a/drivers/net/ethernet/freescale/fec.h +++ b/drivers/net/ethernet/freescale/fec.h @@ -621,6 +621,7 @@ struct fec_enet_private { unsigned int total_rx_ring_size; unsigned int max_buf_size; unsigned int pagepool_order; + unsigned int rx_frame_size; =20 struct platform_device *pdev; =20 diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethern= et/freescale/fec_main.c index f046d32a62fb..cf5118838f9c 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -253,7 +253,7 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address"); #if defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x= ) || \ defined(CONFIG_M520x) || defined(CONFIG_M532x) || defined(CONFIG_ARM) = || \ defined(CONFIG_ARM64) -#define OPT_FRAME_SIZE (fep->max_buf_size << 16) +#define OPT_FRAME_SIZE ((fep->netdev->mtu + ETH_HLEN + ETH_FCS_LEN) << 16) #else #define OPT_FRAME_SIZE 0 #endif @@ -1191,7 +1191,7 @@ fec_restart(struct net_device *ndev) else val &=3D ~FEC_RACC_OPTIONS; writel(val, fep->hwp + FEC_RACC); - writel(fep->max_buf_size, fep->hwp + FEC_FTRL); + writel(min(fep->rx_frame_size, fep->max_buf_size), fep->hwp + FEC_FTRL); } #endif =20 @@ -4560,6 +4560,7 @@ fec_probe(struct platform_device *pdev) pinctrl_pm_select_sleep_state(&pdev->dev); =20 fep->pagepool_order =3D 0; + fep->rx_frame_size =3D FEC_ENET_RX_FRSIZE; fep->max_buf_size =3D PKT_MAXBUF_SIZE; ndev->max_mtu =3D fep->max_buf_size - ETH_HLEN - ETH_FCS_LEN; =20 --=20 2.43.0 From nobody Fri Oct 3 12:12:04 2025 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011030.outbound.protection.outlook.com [52.101.65.30]) (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 7082F274B5C; Sun, 31 Aug 2025 21:16:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756675008; cv=fail; b=S2iebuRRokH1tnq0FlqdR4677L8oVdy6UJVJFJX/PNCAO7zdYCjCtkMBDQ20pELe7eb+s/QGZXPq9e1eivT2e+2gbMgP/44o6SEXSljseMFf43NAOtjiwEwiQNrQZsRFkgfhFrAIe5XzIYAchRbi0ZR7PdIxlrLLg9b2mj1E948= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756675008; c=relaxed/simple; bh=NU0V1R3T9U1CrxIkgjO9vfZMcIhOzn49b1Mk3q5w6W0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Bq6IqmqDKgc14o3k7Z9QEd7vv4WZTFBLx4jiwUa2ACl0QAdKZdp3xAqstev+hCyHEh7Rq2qQQJMdXhMUVgGzRPjTiewIj1FReCDcHjE087BF6DufYI1JEembGsBYu/gGb3FVKK6gi5isHIx1qju6g0XIgLU1k5TJvyGUzb4FPHs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Rh6zXvd/; arc=fail smtp.client-ip=52.101.65.30 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Rh6zXvd/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OrM6U3SKkB3xvCTY3LEo3HKz64xrwZCj5oLbgI+uU0EyUgOcxawc9d+oY5mP0fG89IWLZXzQeXvscdEpu3jTELNR+V+RYJzXzMQx3A9nvB0E4H3AoFkZECvQi2j/HHjhyxzK9f+R7Prim7CWooT61OgDMcAU0QOVexUBdmdDdZ2/lsUaOfakO9kywM4V7s2V1cRf8+NZMJAhkWB9OaN0Hzw0zHk7OFcqC49ljb848dDzB6eeorUOJ2Z9PzlOl+cWjdnEOgfLLLRJKXDedPTOBTFitVeh1VL7HTN39PXUWbnP5h1fALDK8CSceFkM4UzIxUo86A8IcObK/3OdOeu/rQ== 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=4zMl6VG0IeELyB57BnlfQ7x6JeV6WuAGkQHPfjAlHg4=; b=B+oqJLXD72i73lWbtG4h1nrV72WZ524P0xm6lGwPTNyS2i8VtNrDIzSB3KIwJuyqTiXvggouByqQGMPoCLRp0/Wp8q2TCMqQV3vq3SC1HRNSIKDxwrld4oGmwyfNllVAfQ7yIVdtl/khLL7hjg41wugCZ7jlOtYBY6iLYyuP1HsAE+eZGw2OjwT36affuY4ev7MoPXBsXKOFNGBW0Hpst5Agqf80U9fyYFIHF7WmV+rWhP7O8dX+CNoFjn7qOMufUKGB4fXQWplvj1Q9JB3gvvNpO7TCPzFf7cQZDqif2SRVB+35xf4xCeOIxhMmOfbj0lnL7e40MeGVxr+yNGfbMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4zMl6VG0IeELyB57BnlfQ7x6JeV6WuAGkQHPfjAlHg4=; b=Rh6zXvd/QSPZBz/uggam7iBa96ibBzjBFRXegoR58Fk3ZiSVA/vsZkfxR1N5fmLAaSalvdIvlANwiV0RKyoCNEk2agPwr4kAtchS6y9LPYHKCVdlyAaRQDZ+UVs827Bv8OAfVQ6GCwElnTrZ4bxDmYy4elWIN4rm0lesTuwk6LefXjWaQhD3w8pnJKLoUzakuBUj7UoIAxt7AYiae0AzF3uSOxStgiNY4/gab3rumPJ0/z/tE35WegehbEpeHLkCG+hKDbuqkL5gHcV8VXgZP8lj0qMX2euhMjxsJK4H7Ku6ZEU9bXwezc+oc9gV8DYt2ARl8vgAOvel3pY99KCRKQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) by DB9PR04MB8250.eurprd04.prod.outlook.com (2603:10a6:10:245::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.25; Sun, 31 Aug 2025 21:16:44 +0000 Received: from PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612]) by PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612%7]) with mapi id 15.20.9094.015; Sun, 31 Aug 2025 21:16:44 +0000 From: Shenwei Wang To: Wei Fang , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend Cc: Shenwei Wang , Clark Wang , Stanislav Fomichev , imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-imx@nxp.com Subject: [PATCH v4 net-next 4/5] net: fec: add change_mtu to support dynamic buffer allocation Date: Sun, 31 Aug 2025 16:15:56 -0500 Message-ID: <20250831211557.190141-5-shenwei.wang@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250831211557.190141-1-shenwei.wang@nxp.com> References: <20250831211557.190141-1-shenwei.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY5PR03CA0017.namprd03.prod.outlook.com (2603:10b6:a03:1e0::27) To PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9185:EE_|DB9PR04MB8250:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ad803db-d706-49ab-55f5-08dde8d3afa6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|19092799006|52116014|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?UPsJuy6v1pRzfZ9/lWglCjUkt6A6LDZclq2YIsER1sOgRzf5erhWotnC+cYI?= =?us-ascii?Q?iIg23diaSCG1+TmSR2H2XijGFTKUeqa70cJW6hTF5jnhQjzfeuMdQ69+fj+t?= =?us-ascii?Q?0SoD9WpzK8wslpVUdwF9/4YTx/SAihC4wCiN/c9zVE3lrkvIi1rKN0u7cWOm?= =?us-ascii?Q?JJaCcPZQdztknqSpInvJpJdFUUs60zDlfWRY9p4sA427R350Rp0/E9L3T6c8?= =?us-ascii?Q?ttamP4gQbhm3Mv1jVablzVlf0W3IguWTZ/zrxcRDbtqqoEfDVSBqxUcIRtPU?= =?us-ascii?Q?u7M0dmwy9Ea0c2hb+uoHZWkicyODop42B778rvfKbmXkbHxFE5pEH8HGqV3T?= =?us-ascii?Q?uxX73qOEgNadgj8Gr0yzv2S9VS6kB7uUkNGAnNU3xRUrWH9iYuVs/U8ldeju?= =?us-ascii?Q?MZ/3L1uTc6tmas5b+k75CsEWT5gW35ceCkApA1z5vG+CJC2jUQdZ5AvypC/D?= =?us-ascii?Q?kjr4WfK+qNXwBUbNJIIwLrc+D6Abihrgvm/Ks6lkef8n2mBE9jPepxhLSj9k?= =?us-ascii?Q?JQM2ANb0+m+i3hoQdIMcZtt6aEd5kjQO16TaPmsH3MKxL40CSP/Wx0vPwoJo?= =?us-ascii?Q?FWVEUTw4XStUaDwpLJmtc15n3nTJGB5BY4zbyuVqKutGTRHxcFnKdu4Vh3Gv?= =?us-ascii?Q?60WegY1kfa1JTKuNrYFbkrODoEkmo82/yL/r4ulgWwBdMv5qKfw6KmenrxMh?= =?us-ascii?Q?lZmoehwalcGHmdjO0D8AhP1fGMExo0gbPyBzWZ/eFB0SY2ipxcrB8E9TUYBp?= =?us-ascii?Q?xTinJwSJih059zOhlc6mIbF1aGAccIfPGojhr82DmwZphb3WzebFBMvEahwt?= =?us-ascii?Q?jsnf/EFAEEWD0Q5i4hhjrtl4WyVWXvFJsOl1ZF05RaHfTpo1QOvf19rkBhLg?= =?us-ascii?Q?VJE5IjhVleECts7pt0iqc3yHaDytdJP28Kf2qcFsnNVtiKTMt0i/XKVQt9KX?= =?us-ascii?Q?RHA4wLEgyghdnTs2qi3vahZ9Ildr/K+90I4DHO0eqmGl2mgnK0e1M5BdK7f5?= =?us-ascii?Q?oqG8pbi4HpSAkmUig/3y8XtofQVGonlMMOgKQo7PFXV6f1hGmOnhHgFpIKGs?= =?us-ascii?Q?RPKHZmTrSEKdH/M4KPvrIupld7JZAI4V4zydbuA2kAPu7+4FpqOEhbhYoY7v?= =?us-ascii?Q?RWm7imerTGqONrjLsZqE/EGzJWZpTYfV81+XL3vesnzIDxHxAEeb/nGnu4ud?= =?us-ascii?Q?aj5G2daH+laXxMZReEeKH6RHu0leT0ISqUJ+qjcN+A86AFXbJXodCc1in2rY?= =?us-ascii?Q?nsOPBshW0wnb4F/ZZCeLL+0wn2hvueFcHCLrt+LEavW5LOFtwf8YpEhAnyYG?= =?us-ascii?Q?ER9k33EWpYRww58zQLEw5DQKYriXhoqGh8u+YKQTfHvMv5yOyvJZ0H1xP/te?= =?us-ascii?Q?0BLBg5XIR0AaL9RcGNCC2nIF2VM39cVirKxmgPQ0Dr/cu5rfKnXFj0LYUDO+?= =?us-ascii?Q?i8TA1UFOe9dgELOIN8V9qadFFc9N3FU0P9/rlGd8kUWDjZBCkP0u95l+5P+q?= =?us-ascii?Q?BISBumo9c/QD/L8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9185.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(19092799006)(52116014)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wwVJkCSzKU3GKDDKrD4QLQfouMIcGH2W9ni/U5esyP6IDbMTVJWOfFOm0iBG?= =?us-ascii?Q?4SN9CpxQ98TVUtiOnsgnOwTsOo4IBfomM90mbUgvaDtYJfZSyJkLeQ1Cm138?= =?us-ascii?Q?TMClMDrTQzMMMZobzR/kluVNmmmmxkOcGVRN/ktJ5XcgLzLu0t5NSmi1CSMc?= =?us-ascii?Q?1pcS2xeRNpcctdb4CIPcRF4DDONG80OvaNI6eW16ySEpbcpOTqWI2E4ZW+AX?= =?us-ascii?Q?i7ojoU53q8TelXxGr0rJdMTGn6tFZxE+R5qHZJ6Y4drdBf8LGj84qm7JcTtt?= =?us-ascii?Q?8P2HIksJ3SnsUG5OA3V/l4Zfr4gfkJBGYyf1LqzL7PXHuEyrqJ8QAPaAEuRx?= =?us-ascii?Q?daIH2U2H8cWZHo0e1Cv/Y9l98oF++xUrnBC4xrE7sedmnCjd51X8lAm7NGSf?= =?us-ascii?Q?0Gg3sf1mXD4fmJf57tI2qvW3MYAth5x+98nBOmcwEPapIUCpCzeAw1r2/y8L?= =?us-ascii?Q?K7DSVg+np+B445kjgqgx5vODkV4Kc8rCflEf4XSw3rnNYMNDcyf+c4k6wOMm?= =?us-ascii?Q?RzKUyPwfbD/Wgacep8XRrOfS4FrlGmKQwp/BwNLPgMM9tkq0Ua/iB223WFSS?= =?us-ascii?Q?nlqs5Aw5cJzKd2mZLDB8KrtHwsgTTIr+5E+j2EjZwklTz0DVDo8xsHrW3vfU?= =?us-ascii?Q?9WluOzSixFTsQMsoxLrncI+7oVPL9mCTkZPuA5f12NwhCKjEox86kiHGJXAj?= =?us-ascii?Q?VRI1c1uyjQX89N2hhPuYhXk/sLo9a8Wu/Cspuck9obWVI8hYwwDC77pZs13+?= =?us-ascii?Q?vUKcUtcLlo4T6Mrt/dDIApv6fW59DzEsu4bwWa6lRua8UMDQwFzhUFhjdk+c?= =?us-ascii?Q?Ey91aeJX4FZfgwzCZPNPFe/Js/eo4ixyzQV/d4yQuHKTe/6/p6pGJMGSewYb?= =?us-ascii?Q?nQAjcFllnWxNUq5M3e9j9F8/bv79uKoD/1TC6+QVBupE+AYmxrwukSzvmSUh?= =?us-ascii?Q?5zPQvtwPTlV/oVKKGPpYf2H5FSjV0TVmw3PFHdFufpuFgB7AdVuH3MLDKWv3?= =?us-ascii?Q?1L9EZg5FLvADo8RNFeylkt7/YxrxZMHrbO3pEnFFN3EnLKwXl5NfH+ivah/s?= =?us-ascii?Q?36rkJjqtNIOn/pkj9AZdNQWUaUdb8rT8XF1097mimBSVIU1U/fOrjuCSU4Rj?= =?us-ascii?Q?TqOlD6BPtdtEssnecblLjZ4lBC5U3ifjoQt8igh1Bhjl6JjXT7HLzQHVyOJR?= =?us-ascii?Q?Pkh33WKyHgYE6dFiUcxpe5rGKcOUHnmuqBIXYxbK3GbBenfiyv583EzdFhVq?= =?us-ascii?Q?qZlve5wACFdv4VlTAaIkowZbQ6wUSIGYhbaOK44cA6vnTdVNYqRQ2+/Pc5Ub?= =?us-ascii?Q?kLnlkL7IEme76atYgw0SpLko6bxvRFzsE5r+u1NGybyIud4MYyE1/DLunNt+?= =?us-ascii?Q?SGmzM6JgITfBPVQSGuxisJPiFNSUs7llY9bU/9yrr26ZreBT39uJ7rEvV7Is?= =?us-ascii?Q?BBPUj76yDqRA77KhovsFZTdrcmgqt+bcyuP9RSK5PRA8+KtzfFogLtmkBNsB?= =?us-ascii?Q?E72t+n6Ycsf0CK96+EoylqRzs5hAHQ4OnzY6S2rRi4H0DMnP4aX1wmcmv19o?= =?us-ascii?Q?DukCyqeZoeMzNbsBJhlFzhYGbVBTrMpvWDkuugMX?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ad803db-d706-49ab-55f5-08dde8d3afa6 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9185.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2025 21:16:44.0890 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 51ha8Bt1eBfxFtDvgRGwVHnaESecFFhvf6e9xkz8XvyhG/otDo8V8RT1Fx18Hovb4y6JrGus4h4NGFz/NfKpPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8250 Content-Type: text/plain; charset="utf-8" Add a fec_change_mtu() handler to recalculate the pagepool_order based on the new_mtu value. It will update the rx_frame_size accordingly if the pagepool_order is changed. If the interface is running, it stops RX/TX, and recreate the pagepool with the new configuration. Signed-off-by: Shenwei Wang --- drivers/net/ethernet/freescale/fec_main.c | 58 ++++++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethern= et/freescale/fec_main.c index cf5118838f9c..43f342dd9099 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -233,6 +233,9 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address"); * 2048 byte skbufs are allocated. However, alignment requirements * varies between FEC variants. Worst case is 64, so round down by 64. */ +#define FEC_DRV_RESERVE_SPACE \ + (XDP_PACKET_HEADROOM + \ + SKB_DATA_ALIGN((unsigned int)sizeof(struct skb_shared_info))) #define PKT_MAXBUF_SIZE (round_down(2048 - 64, 64)) #define PKT_MINBUF_SIZE 64 =20 @@ -470,14 +473,14 @@ fec_enet_create_page_pool(struct fec_enet_private *fe= p, { struct bpf_prog *xdp_prog =3D READ_ONCE(fep->xdp_prog); struct page_pool_params pp_params =3D { - .order =3D 0, + .order =3D fep->pagepool_order, .flags =3D PP_FLAG_DMA_MAP | PP_FLAG_DMA_SYNC_DEV, .pool_size =3D size, .nid =3D dev_to_node(&fep->pdev->dev), .dev =3D &fep->pdev->dev, .dma_dir =3D xdp_prog ? DMA_BIDIRECTIONAL : DMA_FROM_DEVICE, .offset =3D FEC_ENET_XDP_HEADROOM, - .max_len =3D FEC_ENET_RX_FRSIZE, + .max_len =3D fep->rx_frame_size, }; int err; =20 @@ -4020,6 +4023,56 @@ static int fec_hwtstamp_set(struct net_device *ndev, return fec_ptp_set(ndev, config, extack); } =20 +static int fec_change_mtu(struct net_device *ndev, int new_mtu) +{ + struct fec_enet_private *fep =3D netdev_priv(ndev); + int old_mtu, old_order, old_size, order, done; + int ret =3D 0; + + order =3D get_order(new_mtu + ETH_HLEN + ETH_FCS_LEN + FEC_DRV_RESERVE_SP= ACE); + old_order =3D fep->pagepool_order; + old_size =3D fep->rx_frame_size; + old_mtu =3D READ_ONCE(ndev->mtu); + fep->pagepool_order =3D order; + fep->rx_frame_size =3D (PAGE_SIZE << order) - FEC_DRV_RESERVE_SPACE; + + if (!netif_running(ndev)) { + WRITE_ONCE(ndev->mtu, new_mtu); + return 0; + } + + /* Stop TX/RX and free the buffers */ + napi_disable(&fep->napi); + netif_tx_disable(ndev); + read_poll_timeout(fec_enet_rx_napi, done, (done =3D=3D 0), + 10, 1000, false, &fep->napi, 10); + fec_stop(ndev); + + WRITE_ONCE(ndev->mtu, new_mtu); + + if (fep->pagepool_order !=3D old_order) { + fec_enet_free_buffers(ndev); + + /* Create the pagepool based on the new mtu. + * Revert to the original settings if buffer + * allocation fails. + */ + if (fec_enet_alloc_buffers(ndev) < 0) { + fep->pagepool_order =3D old_order; + fep->rx_frame_size =3D old_size; + WRITE_ONCE(ndev->mtu, old_mtu); + fec_enet_alloc_buffers(ndev); + ret =3D -ENOMEM; + } + } + + fec_restart(ndev); + napi_enable(&fep->napi); + netif_tx_start_all_queues(ndev); + + return ret; +} + static const struct net_device_ops fec_netdev_ops =3D { .ndo_open =3D fec_enet_open, .ndo_stop =3D fec_enet_close, @@ -4029,6 +4082,7 @@ static const struct net_device_ops fec_netdev_ops =3D= { .ndo_validate_addr =3D eth_validate_addr, .ndo_tx_timeout =3D fec_timeout, .ndo_set_mac_address =3D fec_set_mac_address, + .ndo_change_mtu =3D fec_change_mtu, .ndo_eth_ioctl =3D phy_do_ioctl_running, .ndo_set_features =3D fec_set_features, .ndo_bpf =3D fec_enet_bpf, --=20 2.43.0 From nobody Fri Oct 3 12:12:04 2025 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013027.outbound.protection.outlook.com [52.101.72.27]) (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 01B6C276048; Sun, 31 Aug 2025 21:16:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.27 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756675014; cv=fail; b=EihPFM0Yeup9uxfGhoRyfu6sh1rlE47BGedpiq5JHq7tbeNQJqQ/tyPv+U9/psmz49CP42TbrQoJmi8VdMHCXPUD0Vyua2ikamroZ/oJlkyXLUGceKd3I2dQrc51JOyxYDWX+47d0gz2xrBfQERyyEUDy6/AE1UYszqPMBCqO5A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756675014; c=relaxed/simple; bh=amfrMx4ZE+1Fm07eSaZ1aU91xVdfyu5CRwWhEw0Z2bU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=W5iMp6qtX7cdaILz8YMPWtB91MJOa+EgjrWfvd6adce56DSgzOEKP0ZZE1wSPEn3tAFBgYZOCzuLWE+H3eBMJKOTlGtb1rwhUojGHjtSmwbdTybcAr5JeRqreQETSZ+izxCD6QRRQhlRPV1UOZfE/0On1TUFfaL+6bN+ADsttNw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Vml11YPe; arc=fail smtp.client-ip=52.101.72.27 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Vml11YPe" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CjNeZyy1lMp8OVlK89flJMQZbyZHNqJi6w87oDPXaKs30PzkYD0x8k3FhS0vELR/8Zwv9rySfnZPyA3+oTC4Ir+Y84ztm7Ru8amX56uUuYVs/Q91xrikvJToKPq0xDXFsrbSO18ylsRDmdGONgM48WeL8Oek4iqZzyJsWXVEte9yFE8RtNOqzxnLZZH3mE8u/5MCTj82ErZX9TGic5SupRnU7lNsmQnjvGwmvm/rTzOU6gewmEs9KtEP0oMOhAD8fJJi/jlwYHS0mdWsrCWyLlt9KE1JSjHzacQIO7h46/eCBdSXgXz8MW+LcVi2rjgp9Yt3xZe6/PAK8XjoFMfpOg== 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=roh2y9vbNYL/sKYopp/6x4wudpm9dpI0wF7ODxpkqjk=; b=FJz/yrB0ZzEkOXqQwz7TZSCxs+IBKo18jmSXXE2pNdEf4i/nGQf7l/lj1CajhxeAiTihsD91tX8oSP973IRFSY3AnL8ZUBSy6xxMWCXHM4WV+JAGvY1vD5SS6OFvrF1+JiSZluiKi41X5lTF4b5jkjR625QJfIvZRvsYASHXkSoDzeKb1kjWHjK2fyprlZ/0su/lfaFZJ2F4WpMmE1ySRsdvnbd3x1BmI0A3L7ucfx1yd7WFH+Rw/L5CdNbgWKx1zwYVmgBQELe4iqw1DKQ+v8VvkcxUyGQTVDRTA4lUNk2Dfo8ofMCDMksZO/xKu0MjN6ZDL58tJVuDNoTejCWzOw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=roh2y9vbNYL/sKYopp/6x4wudpm9dpI0wF7ODxpkqjk=; b=Vml11YPema5xRLNV9XdEkbJ/DjRtYZ+x1gtCI+GZOCDFYUZNy+evcONwO/mKQqH4SUwhy2JaZ1eP6n1nfbtduqA+xsRQbwwrzxYaQofAofIFwrbfIYkfS8oPHFrOz11x/Q7OV/WYvL7v57VwGLCE4oGAQLi+FaPI9+UmG8nAbdqcQ4ZsRvlBfoRnbuY81Zf7fHTh/FNzemr/KATJztayAc4f5gB4DZCewWT26u7qCGtwYvMA9VRJnE77H4SOBSSoQtHE3oNEZbZ4VniaFBXHOHJ21mnle0DpSrFVkK6E+Nmdb781TWFpmjRFyJWHiFRTsSGWs850D3HGVVPCLavZyA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) by DB9PR04MB8250.eurprd04.prod.outlook.com (2603:10a6:10:245::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.25; Sun, 31 Aug 2025 21:16:48 +0000 Received: from PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612]) by PAXPR04MB9185.eurprd04.prod.outlook.com ([fe80::21bf:975e:f24d:1612%7]) with mapi id 15.20.9094.015; Sun, 31 Aug 2025 21:16:48 +0000 From: Shenwei Wang To: Wei Fang , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend Cc: Shenwei Wang , Clark Wang , Stanislav Fomichev , imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-imx@nxp.com Subject: [PATCH v4 net-next 5/5] net: fec: enable the Jumbo frame support for i.MX8QM Date: Sun, 31 Aug 2025 16:15:57 -0500 Message-ID: <20250831211557.190141-6-shenwei.wang@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250831211557.190141-1-shenwei.wang@nxp.com> References: <20250831211557.190141-1-shenwei.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR07CA0060.namprd07.prod.outlook.com (2603:10b6:a03:60::37) To PAXPR04MB9185.eurprd04.prod.outlook.com (2603:10a6:102:231::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9185:EE_|DB9PR04MB8250:EE_ X-MS-Office365-Filtering-Correlation-Id: 5ca10d04-50b5-4d41-ddfb-08dde8d3b239 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|19092799006|52116014|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DvKvCFVOc08ZhtnXkMr7VuNPXlQG0pf8pQABOciLC+ZTHMMSqJJJK/1UDWOy?= =?us-ascii?Q?5WvtfXuKWZc1PyJ6lVOVXyS6mk3v2Hfxtrj8RmZqxRPlhpCfvbd3U5Xwf67y?= =?us-ascii?Q?iplwCeSWbjsfgL493hQbI892Unvp3ODv7LWlCs/tr9vzJqhIDPhJS7oP3IbM?= =?us-ascii?Q?mR5If3pDyhDMHcnorFxkXmMki4QtrCECFMwR+8muiwxefahl/aJgIEMdbvnu?= =?us-ascii?Q?LToVxz2GXN4x1vi8eWprJ5GmlUjJYQxD9NOE4bmOvFFoJVBD3CIDwy22JDIb?= =?us-ascii?Q?Zvkn0deqF1AQouK7Tom6JcXIexh2j6HpNWtOEAwGaY6Q9XPBQ0tuJMT3OgDN?= =?us-ascii?Q?pGZG4d+Nl7nfavfwO0coT0VU0BwxcHgrP3TcYHUMxiQrpgfGXAHMtO2KoTA/?= =?us-ascii?Q?q3TLjxpvFuwGNcpAivzHkMFlbkVHxtlpk18UGih6DpX1283ujSnJZsHk7LFX?= =?us-ascii?Q?nEhBCDG0aXhLGHp45HhzILuScYyVZTJH6IteIVcEVlRfxlAMWrTNBYLH60wB?= =?us-ascii?Q?DP9/DYb5s4oN53yKng+ApQ/OHVyqsfJHz/3LWXzH10hTWlSLElwpObvrhbLA?= =?us-ascii?Q?Kfo34TDMsyB5UE8cWYNG/U7zqkJUlRIcmkY4l0k6N3EGrZUPlMSPNqvX33uw?= =?us-ascii?Q?V1wZk86FstYb2o8EVjWkAUssE38wFtrPP/3La5kvtcc4cY9XDbgugJKKnZEK?= =?us-ascii?Q?wDN4hxHaNy220wuLEur8GlD9G9Aam8lTrMH/iqutjTKlULuz9ippcj/eZ0Us?= =?us-ascii?Q?1eDx8EMkBpvdfAjkz2+lQbvT1SRB1YOinkUI1M4CA7h6WhEF0AvDt0VbahcA?= =?us-ascii?Q?r+r2DBpriq+IumjuGTVUpA4ozOKiDCQSWNik34J2uEVA1a94HmlYy6HjLwyw?= =?us-ascii?Q?HMFB7DwZdLuiCTtxL14O3QqQ09Yki9GNtRKYzF1OLtBbmMmRnDpLhf/DmL9D?= =?us-ascii?Q?KQAJELo4aBddYYXJtpj+Y2L4xd/47NVbZ1WTAGz1JVrmgFqGNKs+AsnrbutJ?= =?us-ascii?Q?YhucGpy4ND9JYoLZoLosvnFINYHyk6hZJw7wvMhIa3ssXswQsd9fSaJSFZTo?= =?us-ascii?Q?bqpTiuAVMj9nM8QMaIQ5sn6KORX6oPBlW15JsJnfa6MKizxXEmu9yQDbK0iv?= =?us-ascii?Q?n38LrMGYEn4XYk+ADsYpePYtPPqEbQ2rZH+nnebkYY5TWoQGvg083nWk0AU/?= =?us-ascii?Q?BAY4SJ2TjnfCUtYUcqegmSNxrxJSGxmZPhj0CvJQqHqwAVjBvv+kUVuHcWib?= =?us-ascii?Q?uCGf10jXdl0TX31N20B6EblTvAaU0/HMd5qWwVRzi/nDIY67v3B1dO0NUGtR?= =?us-ascii?Q?pzvfz9SCJU4zTgdCHimkhSWVb0Oqv/RM5pP9P6G1YsjO86vEBLd9s8ulbP1k?= =?us-ascii?Q?hf04uzOkEHz+3219irw2ZYkfEw63by62xIQdfDhadHAG8wjSJBLewfxQcNTP?= =?us-ascii?Q?mXApWyXBn5zglHZuQT6c6tHmlXBneElbK9q+AMsddMB6ZX/gZ2PVkFUoeNjj?= =?us-ascii?Q?3d3M1DMyRlxWgdg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9185.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(19092799006)(52116014)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CCB9PPluoL6bhVU2Yy+5K7SuFtui1o0/jTK6Dz9nIDfu8OuuqmuOTmr+7DM2?= =?us-ascii?Q?OllSecsu6+mSPR5N0+uVGlhhxMmppfo7ALPQjezumBSZwoeA6Rg47RdroVWV?= =?us-ascii?Q?eL+AHd9QkW49vyyzk1QSzRK9m3/rRoe78q19AOkCYRcuV1ZxUaVbBNjH17Fc?= =?us-ascii?Q?0vA7ENREIpznFlYePuT7CXDg138NZIN9DVPEr+J88+D86XRrJGoqr156BkAh?= =?us-ascii?Q?chuwhv2jh06TqnCRy3EI5ugjAGN4JerrZ5lVQzTVVGFBu1ozMYAvx/GXmNhs?= =?us-ascii?Q?iA3hhhTKZ7rdJKJUfUuhPQYLsKpwxpQMpyffdfxWMiUW3w1G8X2tpeslraTv?= =?us-ascii?Q?f2Pm73hUTfEqIEDzfYssrGAy4ksDdROTYKkZrWOZ55p4C9E6NA6ZJtfX3Opb?= =?us-ascii?Q?1OyRUKcMgugVgL1VJUG5e0Kp5v8w+hZ3djwOk5K1dR/DOEwAeZMP7qiXHM5h?= =?us-ascii?Q?yZ4VxxcCsaYadNh9BmvAIMDvQYcKLddZliyx42igF3jRekQZPeXQPaKQQyjY?= =?us-ascii?Q?Tt8w/Qgxheu1k3qv1KQBeSC9oz6EZf1F9g5bOHNMNGuZPRa9Cgv+eQ6ZMIKN?= =?us-ascii?Q?sLBefADqMTsQNTQaQGiUflZHkIY0SDbhzq8PwW7UjLW/QCaAROShL+zO3p+Y?= =?us-ascii?Q?91P3sVaFK926G5AKeshJjEOiXVuCMAqkD9SWKM2RKC3FRF7nnUBlgoWNf+Ue?= =?us-ascii?Q?Jt1saYeOaEF0npS4a2G9lk0y6GjlRIPKzGavdDZh6xfrkgL9Ez9AlOkbXl5Q?= =?us-ascii?Q?8pxFGTLa53+K8qfFafZcR0sOd+5Bs9KFD5EuGm/qEanpS58g39k12FGt9q6c?= =?us-ascii?Q?Ts5ZkF+ilfbm5TiABInZ27hwc+4DTeNn99nmcRYO5FI8KDS8+Hsa5Alh+clT?= =?us-ascii?Q?SRe44atYqqXxW5wZN3fl5PpJ54hSfX4NA1HczRKMqk0n8bkPGPIe/WypCh/C?= =?us-ascii?Q?1fNY69LcVQ/RbJN7t909/j84gT6XPKZq4OjUTTo3z4WAw/PpNf1gczG5Hlqs?= =?us-ascii?Q?G9Wk7MiDF1kvQ4OaBM+ECXkayaAPN5GaY244Jpej1ueKQdX3D+w6O99jSEOO?= =?us-ascii?Q?MCX852oeYZL9yYEXmZidBF2BL0H3GaWcmZmPShGkWDG/xc4KEblASb3aZ6VQ?= =?us-ascii?Q?oR1NFwq5UpfyUTcCAkfW4e78P2n7t8VjX6eR9Tjtr762DxoiTYBgP6uisLzN?= =?us-ascii?Q?dK6pC8Dsra57RHPoFrbm+2Q5N+VMTh8WhEf3iOMzNG+M1D8WaH3kXAw2eGKh?= =?us-ascii?Q?Wxl0yi2pJbaLjiPujYchtdDodeFyXGXDb0e9mnZexHPCV5cM2FyX99elKhEY?= =?us-ascii?Q?t+CJlEzz2/HPeMzZK4MdzAJujSc/idj7SSFD6YaTDuSY/BBWcm/7wKqV7MBS?= =?us-ascii?Q?H2TVgdOZwjHh72zY6NZnqE2NxAR9UGFW7PAK3baBq9Z6HwT4WMFu5lMYQPRo?= =?us-ascii?Q?4msL4H1CLnz2Rnk4TdA9afDNLC3sWBvwf1o3qdIjSxn+nc4H+F8pxMNtx356?= =?us-ascii?Q?63IwVUtE0TS49ySvvDHyIt6Agtxxq6MSlOXQp0eFZaxjhJLo4e9AgVkpuC8K?= =?us-ascii?Q?Y0Z3q3lbDD2ZFEpfEEZgiq7+fhW7anGdduuagUmX?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ca10d04-50b5-4d41-ddfb-08dde8d3b239 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9185.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2025 21:16:48.5300 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: R/zaI54N5lkXqbiwqFASXwgHGGxrQ9RaOaaETZ2FscmY3dVi/HUm2hh3H474khhVH0NQX5BWYpvSQciK5toopQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8250 Content-Type: text/plain; charset="utf-8" Certain i.MX SoCs, such as i.MX8QM and i.MX8QXP, feature enhanced FEC hardware that supports Ethernet Jumbo frames with packet sizes up to 16K bytes. When Jumbo frames are supported, the TX FIFO may not be large enough to hold an entire frame. To handle this, the FIFO is configured to operate in cut-through mode when the frame size exceeds (PKT_MAXBUF_SIZE - ETH_HLEN - ETH_FCS_LEN), which allows transmission to begin once the FIFO reaches a certain threshold. Signed-off-by: Shenwei Wang --- drivers/net/ethernet/freescale/fec.h | 3 +++ drivers/net/ethernet/freescale/fec_main.c | 25 +++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/fr= eescale/fec.h index f1032a11aa76..6802773c5f34 100644 --- a/drivers/net/ethernet/freescale/fec.h +++ b/drivers/net/ethernet/freescale/fec.h @@ -513,6 +513,9 @@ struct bufdesc_ex { */ #define FEC_QUIRK_HAS_MDIO_C45 BIT(24) =20 +/* Jumbo Frame support */ +#define FEC_QUIRK_JUMBO_FRAME BIT(25) + struct bufdesc_prop { int qid; /* Address of Rx and Tx buffers */ diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethern= et/freescale/fec_main.c index 43f342dd9099..9d4adc8335fe 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -167,7 +167,8 @@ static const struct fec_devinfo fec_imx8qm_info =3D { FEC_QUIRK_ERR007885 | FEC_QUIRK_BUG_CAPTURE | FEC_QUIRK_HAS_RACC | FEC_QUIRK_HAS_COALESCE | FEC_QUIRK_CLEAR_SETUP_MII | FEC_QUIRK_HAS_MULTI_QUEUES | - FEC_QUIRK_DELAYED_CLKS_SUPPORT | FEC_QUIRK_HAS_MDIO_C45, + FEC_QUIRK_DELAYED_CLKS_SUPPORT | FEC_QUIRK_HAS_MDIO_C45 | + FEC_QUIRK_JUMBO_FRAME, }; =20 static const struct fec_devinfo fec_s32v234_info =3D { @@ -236,6 +237,7 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address"); #define FEC_DRV_RESERVE_SPACE \ (XDP_PACKET_HEADROOM + \ SKB_DATA_ALIGN((unsigned int)sizeof(struct skb_shared_info))) +#define MAX_JUMBO_BUF_SIZE (round_down(16384 - FEC_DRV_RESERVE_SPACE - 64,= 64)) #define PKT_MAXBUF_SIZE (round_down(2048 - 64, 64)) #define PKT_MINBUF_SIZE 64 =20 @@ -1281,8 +1283,18 @@ fec_restart(struct net_device *ndev) if (fep->quirks & FEC_QUIRK_ENET_MAC) { /* enable ENET endian swap */ ecntl |=3D FEC_ECR_BYTESWP; - /* enable ENET store and forward mode */ - writel(FEC_TXWMRK_STRFWD, fep->hwp + FEC_X_WMRK); + + /* When Jumbo Frame is enabled, the FIFO may not be large enough + * to hold an entire frame. In such cases, if the MTU exceeds + * (PKT_MAXBUF_SIZE - ETH_HLEN - ETH_FCS_LEN), configure the interface + * to operate in cut-through mode, triggered by the FIFO threshold. + * Otherwise, enable the ENET store-and-forward mode. + */ + if ((fep->quirks & FEC_QUIRK_JUMBO_FRAME) && + (ndev->mtu > (PKT_MAXBUF_SIZE - ETH_HLEN - ETH_FCS_LEN))) + writel(0xF, fep->hwp + FEC_X_WMRK); + else + writel(FEC_TXWMRK_STRFWD, fep->hwp + FEC_X_WMRK); } =20 if (fep->bufdesc_ex) @@ -4615,7 +4627,12 @@ fec_probe(struct platform_device *pdev) =20 fep->pagepool_order =3D 0; fep->rx_frame_size =3D FEC_ENET_RX_FRSIZE; - fep->max_buf_size =3D PKT_MAXBUF_SIZE; + + if (fep->quirks & FEC_QUIRK_JUMBO_FRAME) + fep->max_buf_size =3D MAX_JUMBO_BUF_SIZE; + else + fep->max_buf_size =3D PKT_MAXBUF_SIZE; + ndev->max_mtu =3D fep->max_buf_size - ETH_HLEN - ETH_FCS_LEN; =20 ret =3D register_netdev(ndev); --=20 2.43.0