From nobody Sat Jun 13 03:28:56 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010031.outbound.protection.outlook.com [52.101.84.31]) (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 713893B8920; Mon, 11 May 2026 08:34:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488494; cv=fail; b=qGC0cuAPGTe5D6CGx+ahbaFeNYzoL6d9svjFeqcyN2+3Ngw4PG1xhJ/CfubBft0vQ11b3pL/g0UZ19/V92IeYEa+7Ew4RA7o1G59CJIis4lUi+8xnR5AqY0livMV3HwkhFJkmzP/djcse8psQLokEjMG5cYKb1m8Xm/87OJ3CP8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488494; c=relaxed/simple; bh=7CtqWS6FBgA2XHlUsZyAArUK1eD5kFJArPy7WtFdxU4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=q8nTmiABIJo0H9gZCJyAZW5qm16es5BNHoXSHfgJmpAgxwwFUD4tvkWknskJDXNeefHY8jBAUSDYnxbrhvQcFOmy2Psk32VfrvIwKNTFBaPkqjeRQfcGVgvBAgf1IoKq4KNeKqZhz2v+2rDTCFwD8TduC9g8yq3z/a73QULv49Q= 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=jIf5Vrlm; arc=fail smtp.client-ip=52.101.84.31 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="jIf5Vrlm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iVAN+3H0rIOveE9EOIJJ7wbRTqLjO7AcfF0K9leNXNsNyMmMcfh4bTnCAM9NhodU1KflD+5D+uKqysgV/PG67WwqGSXDgIvcCsVB7NFSciCrH0/cowMhmbY5yb6Pw+0RrR8i1EsiUNaQRvkOKN4CU5Iyc/LTHf2ev9z/7gmnAjxV1bm4v/YqsECx8tWVibsLuKPyxe8SrMSDx2aUu9v1ZNx2J4v7YLrN3twxIbgGU5DXg1ZYE5i64joDi3BVDRpnoXFXnGKHhbnny3sc+Cu8nqVhjTVAP25Q7djLFCxx/A8UU8uOfQRmOl0aLHrSE9kWKQIdN+rkqt2ussnN8ECyow== 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=xboyFKga4dxWYTz1egBwZXtcGP/iDHIDYqpV9hxGqjs=; b=dTddcTnf1e/8M4GNqaxOPuQ8EQ4Yw880Gu+2JWDcYXUcE+ltAU5/ZR3qESeuUN7XD+4aTA8Au5fR2BcnUDpX5qVH1VApn9ehucOESnyI1/Jx9TY2WaobZ48s4JxgZ7gVxUA4ZbsMfDzrklwraN8/aPWYkcpBr/h5brWpVJPBYOrDuxwLgR/IIxdj1xAmMswcjx30o7I/TyROFydIHWyTdoIsIRjOjuCVrIMuz0RYSjJu9Rhm0E/Ota63AlsyzdFny5mPAYYGCB9xrXZ1sNSZk2ceb7nh7Vp1wr7SdE/fXn1puMxWu/0zPoWlHydinm3JDZ+e1Q1lRhxCD9GIVGD0jw== 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=xboyFKga4dxWYTz1egBwZXtcGP/iDHIDYqpV9hxGqjs=; b=jIf5Vrlm/PJZg0TNR2cneBUsw6/l/7DvsQtATe/JOfSgmbvLp2EK/HBwzWEAFYyoX839b7839Jm4j4CwBEr9MXPFte7MlMiq5BuC6QjLGS8wjVhapWYkQ+XL9UQ0Vh37oUwnmlsTIl81o9enTzGH9gpZjT81pa4TdQNyV0mSejeIr3E1FFUuNQeHSeqS1DteWLuIe/eetHDzAYn/Qu0buAEUbqUfSDKRSpcRH175sIJM2MN9WhTiQDlfWvmoEIB8vT6NNxnnus7JZ46O2CBmaHky217L0RvBDOHvbYELYsvAWkVf0gETIq185O1HHwHqSXYklBy7V97G2/bVs+BjvQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:34:42 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:34:42 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 01/15] net: enetc: switch VF primary MAC setter to PF ops for commonization Date: Mon, 11 May 2026 16:07:51 +0800 Message-Id: <20260511080805.2052495-2-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: ec1ef49e-aa58-40e4-83d4-08deaf382577 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|3023799003|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: lGOOj2retCvHvCAi5tWp4bFTGmUeXOVUbw9Q61jvuT1mc5NRW04NP2dGnA0bvG4mVol28aG9v6T5/ddQK4GO/F3PiIjVHXJpQDg/T+BgCGgaLp35YhVuAd05rCZZ4pXCkJg43gNW1CeSd3bZM2poyNU0Nm7oT/NWn3e0WYt5OVW5psPR8M7sv5OiN3Hl9WkyQkGVhmD/QElykpjZA0niewXBTShYVTzO8m2fte4a83nkYSMeqry/m0jj7iCjsxcBoIvpqMYyR6wrjKpimk1F7N11UEQPcVPNIJAz4ZtJVu3YbAFObOWqoVOh2o0MaDaSm24m0KKaGL30WI4RLa565cYbni/kucGhJWs00pMZouw68eezjhRb2dV5oUAs/Kvd78PU/6s6nKxJ1AJvNI07X9DOaPIEHNSxSSe9HupfMKqwfACw0x/0RzD5CXk9nRBFvIn1lA3fjJtvYTEXcP0xVqhxQKx1xS3egwHZYO5ayvn95JbGznYZBh2ZZzrheY8MrDzGoseXCWklbaJRTysg7Bl2WCv90dtl7i1qI7WdF03/gmZ3Msv+g202+YwCTtaBym9oFLjmhodKta2K6snT44wCCzyNcuK9k3hbf+4J3leHntBZ6+K66rEP0ZigIIz1OqKq8FRrGlJMd3/J/wDaGgAAgwsXJye/xAsD8T+1KnonNEjqiirV1U2cyAKbJWxX1fPHzZKwpIxVrdkUCS7TqR9wy5YN5Y+2p3aSEUDSjbwxk8nHuVWn8LHvRe8MXW6k X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(3023799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1/synZN2IvBpamIJHOoOyDD53jblPGW53MKNL0TBGJ1vlzrYQF05ZWxPuFN0?= =?us-ascii?Q?iR/BRZv5U3SNZhKo3KFczdqJWaCb5PDOiDCeeKZDcU/FSJl/9aEoyrqUVvyn?= =?us-ascii?Q?ipN84ClcceiLkLZREENtrIC53YR8oLnsZyCrgKeJQZgL1y3EdJY4XLDVHRtK?= =?us-ascii?Q?lH4P9oHUWcYh5zL4fjWaUUGpOjpU2lB7E9KY5E4OpCD4ZuE7TYUqeOorCRtV?= =?us-ascii?Q?oXz46O5Cg+eDZp95T0v9751VQ402B5TdOnNqL/3UUabXjarTLUpm9+FwKcdT?= =?us-ascii?Q?ViREX0nC4jxlVFJE4HW/Fym+gN7dLb3n8Sl/xD+yZt2hc7fVT28MFg/IHnLs?= =?us-ascii?Q?JatLv1JXUm2VrUEkfnsEL+iwmJg7VZEjcdzsgpcGo5yLhxWphbsUjdCEI54o?= =?us-ascii?Q?vYbG+gpGxH0dvzChF+qe5zeewLulMUhi/FjubKKwjhZjjT9c6/ErRJY2lavk?= =?us-ascii?Q?RVbWDNE3zhh56RxA7MTx0TUsmCfvT9JTImcc0S5qGuIcotLfbwsjW0j2Tr25?= =?us-ascii?Q?NxbLG4x/RjuGJWitJK7BDrVlo6/fG/ukL3TkG/plbfQKBCykesFrAXqVab+G?= =?us-ascii?Q?VcQqNsXaFEg9JmvkSFphTl1g7YztRYUguPkAeTwqBAbsgG9J2ZofqcWu/Ur2?= =?us-ascii?Q?+h30IXvVHUBvMKq70M0mA3ubZvFtg8vJVy1F3CY3ujS6pYcDhlYwBfvdi+W9?= =?us-ascii?Q?o1/FQVmRFTFB6Y8PKa9foSd7gzg2FA0TJh+PIWkyVYvMZaKqmj161HN1Dzzu?= =?us-ascii?Q?PfJ8Bz0aKWP/aDL+V1C4OMSr6NpPz/tTd18tgiarZBv3bn2H3VSvkMM58fX6?= =?us-ascii?Q?m9IOUlRFk2IJ/fzqYtHmVI7z/2Duszxy91jZOT3JdcPSKLmjlIQaxZGjFUKU?= =?us-ascii?Q?WdH69cuQatp73fHy2n70IFyxnIuvTCT97c8L6Cn66e/kyaGxFMxuMhJhVr1K?= =?us-ascii?Q?HbBUt2l4dh/U15wjtoZf04DsoOzCIYNOX8GpwGkOY2MmDFea0zQYG3CvJrr0?= =?us-ascii?Q?rV3HJT6dwBfyfFl0LVqkUVhws+NzLrXJXj5DvQxqY6NgbSJZ1plimoXZA8UO?= =?us-ascii?Q?iOtyz/LurXoAVeOZEp12Z3ea5+omOAs+y8Rqtmutj8RRKsZaHiX6738xFnD6?= =?us-ascii?Q?R5iQDhEDfwlDi1JSfQE7auZDUgx8FFYclTYLNEPIh/wcDkoeuKGgU0EvJyjy?= =?us-ascii?Q?moxFyJl4u+eQ8WM9MogE3teHhkYhEOB17hUmZT+fkL8JKXcBa17iKTf5Q1LF?= =?us-ascii?Q?jeuYXp5UA0PXGS6jGuDQ3Qd2abLs2+a4fdXrw+omTCc8Qb6bUmG8jTN1O4lp?= =?us-ascii?Q?pvxo1Y5+gdZR5JGvztO7AoMnaAFVZif2wS9cRxij/ZrDXqXstCrX8R3wvKb1?= =?us-ascii?Q?DAWPdRT1TJHTuxO8+Hdu+qx6HfgIYiH5KWTRGJkV5proVc8RRX9yHICqG3/s?= =?us-ascii?Q?+7wJHzO8U+1NesksuZV6cWJkvgMNqaAsWC/BFJO3mlmUMcgGNYvpR2sVoPe0?= =?us-ascii?Q?h1ZVW71E+X9ntaJyKjwvY1R5V2zBeg/NYnddUgab1hIcFr5G/g1e0vMTtwiO?= =?us-ascii?Q?YYeW4B+FYiqJG+Ozkq5VlVX9nhPw956Yvq6sxhmcepJqEFHPyGhrtxBe6qgy?= =?us-ascii?Q?4JAxfeB26cx5Xi0mpN7KWuufRR6dOoePE2e4m0sweIsF0nTSaLsXzkGkE4t0?= =?us-ascii?Q?GHoBlFJ5+CXUSVF9/x0uSBet4OLd1XTDRHdMyqDN/oeybhBsCpTBXg7vxBYc?= =?us-ascii?Q?rLcP1wFZpQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec1ef49e-aa58-40e4-83d4-08deaf382577 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:34:42.0350 (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: Ydw/ihfg/NjOP6KiON9dvXryYi6GiRAWCbd+06zsYb8Z1lAIe4REmsQG8RFXosdJWPRK+HksSMasKtHb+wAdgA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" Use pf->ops->set_si_primary_mac() instead of direct call to enetc_pf_set_primary_mac_addr() in preparation for moving enetc_msg_pf_set_vf_primary_mac_addr() to enetc-pf-common. This enables both ENETC v1 and v4 PF drivers to share the VF MAC configuration interface. No functional change. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/enetc_pf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index a12fd54a475f..9063255d8ca5 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -497,7 +497,7 @@ static u16 enetc_msg_pf_set_vf_primary_mac_addr(struct = enetc_pf *pf, dev_warn(dev, "Attempt to override PF set mac addr for VF%d\n", vf_id); else - enetc_pf_set_primary_mac_addr(&pf->si->hw, vf_id + 1, addr); + pf->ops->set_si_primary_mac(&pf->si->hw, vf_id + 1, addr); =20 return ENETC_MSG_CMD_STATUS_OK; } --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010031.outbound.protection.outlook.com [52.101.84.31]) (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 7B3E837C106; Mon, 11 May 2026 08:34:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488504; cv=fail; b=qIvURcm5SoN5heGMTAf1T9Zy96tBDbEs8C+eEqUt36kofND6QW0xAHhiHMqYOajyjd5ENAnW4yfajlHbJFTSzM7Fd1clpLQ0D6YMklYhp1trwd+BdLnAnnt6xIGKQ+d0rQOVi0I+QVJNFbcRkiz2M7t2CqGRnMotxTF7Pu70Tzo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488504; c=relaxed/simple; bh=Ntk4cJ32N5GIypxy2CyD5aVsRQAZaQqJtvSDtBDjPQk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=f40yVm7HNRzU5qPZoinAMtqZjAGTIOhKHlMl79McQeCw+/Hz0M9yH4p/uhbzXU0xnKrcgBc+brX8iZuJfsi6qKPPPi92Ll7wKUXjP+tFEx4ZW++WGvIzvBrW3CxEfAuARCkmxIYlhie1e0H0miykHmQOh26pfKb9chmBtnJVGJc= 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=Vi4rKQVB; arc=fail smtp.client-ip=52.101.84.31 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="Vi4rKQVB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fvEGfyk7IylER3S5GmT/RPB1PNM287R6rBSNakGesUjGQePQtqzcETcL66BvpKvo121O/IhNyrBBbXvw4wKZx8Me3DWGjPBbkwmpx63V6CiBUn8oThHEN16HJ9mIjiw9T4TjSD2uYpIt3HPS9ZobGjyf8zRbOll7yfPO+kiMWBjuDK2f3bbcfXKaY2giILMaRTge2FyHDubn/nOom+IZpaOS/iSKp63+PHv6TKVJ8sjnLlL15mxQigHVYxoMGUJnrLrrn5CCxt4RRpVQTduDLNU1HHi8vkTZptjS71hhLOL+h6qrpKbBBrpxlW2Kdi4U4xBpm71dq7g8bLigR4yHUg== 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=xqaO4tMywFHxtueMQoHMOTji3s/FwnhipsAYUyr9Vvk=; b=v2AVjcONsx2cU0dkDbTd8f/fV4kGaCbxohp2jAXoEeyiCbcjOttrG1QdwPN+1N6CHWxcyzETnJvU7GP070ZYGtzfF6RdH+AlzPqntvnNvwQ/heB4Movuvuz5Gwo2mjTISsADCOUm8CwvadiSA86WbDA2mt8VtXP/fnBZFb3orzvRR8SMXDnkv6H4L/FgY4u3vfm5YtjHv/5AsY37GTdvVRHqOy4NRDo3yiUl3LRQym3/EIgIq43pYm2ZYm9urWQHwNf5P3LxQOfg99uVWyFHt+eIDE/MbTLM6G9CXQ4USZEZOKdlbrD0p7pRXarZDNqyit7TbuVSl9Yv++bvdvvnkg== 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=xqaO4tMywFHxtueMQoHMOTji3s/FwnhipsAYUyr9Vvk=; b=Vi4rKQVBKKlqm/FdaJB74Ah4xSUIwiR6Ke3SuSo7J/KgKcdc8T8mqmUR8vYMacPpYHybyNH3+eDp9k41YvwR1II4mXQCQEt49HWyaMvMyNHNfcKyb+bEOPmS9/LoIw5YK75XC0xdRclk1jGdMV49Y8HXjduXA1FURogM/X8HZdtqrhD1sKhePZBO2+Tyq6qykCopOL3hENQVZIkT6FrYvEBCkZHZjFoA38v1u0OMMERdQ0SwVb8Hd+YK0LTTL4oDpnT1tyBBkzB4dqu0PtOnE8n5rmXiYEZcKEYpFhtQi2KgMhWuG+aCXETuMA5a4SyDaf+pFL3zFkYGw1d6g10rug== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:34:45 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:34:45 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 02/15] net: enetc: move VF message handlers to enetc_msg.c Date: Mon, 11 May 2026 16:07:52 +0800 Message-Id: <20260511080805.2052495-3-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d10981e-1627-496e-28bc-08deaf3827b6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|3023799003|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: BQs9zE5AAfThuDhi6nu55R57h5p6L3OSyuCrn4xu76rEpzW7E31hTfn+Z9OiaR1qQDe7Ys8SorsWBS5OCdgJLHWeXD7ekfUziqosW4Hi8b5FQZ089g0GYOpekIRe7MwTQji3CYn9UcVCjr0lcTjtQ0wWlub7NOVXpvRQmFn3ZLiT0i589BE4q9Oqu5w4EBt5LuiE/kLN8GFwvXpjQtXQHYKjsTmymB0POlflWfhN3XterDyhlqstU7TaFYkwgw0pDPa2AprCzpfOl471JgUTpQA9NCRi73o2i0fVjPAWUCxslUQCNDRxldYK0pnE9Zy3U6E6QcGvxItBxzhA+gqmzoeBmRsjo44ZyUV01fnh6wz+aa3x5PKztAJzBeGkgWB76op2qgi1ERYpMacsD7tkf0CWRsWGs/Flzui3Rhe6cU2c2X8y3TrEzw4o2QgrEZ472DspJ4j6UOyoj8XRj08sMWNTccdJp12kAI2RcGgnVV59p+DeNAp6q1yOjPzHNjaMH0/8fmfbIB4ybBmuH6VQJLiOGccVVTQR4m/SsOHPBCh2m9myYoWtEqjNNNWlev0GnQc0t9cTrdPCfW79bCW5ArpAp3kqhphn6fBPamYJFY+LN0iNsxC76E8S7C8oQ2XSBdOlvanyOGL0v05dRl4PDzqZb64FIKIbcbGVhPCOnC85Hh17CQc4l01OTMvFigC7Oz7g4PFecuhkjZjXCgWuSGmod+IaZVxITU/M0R3S2+8UFDhYbGFB5tPhM8NBwnBV X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(3023799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8Lv7+Tfrv7vjEICE/xko3700MrLgutTUl9qrxuj1Mn8q6885KC+oSKFMhFO8?= =?us-ascii?Q?9HOh7E+sYPrd3rnAfarIdMFHEHiGxbXh2b1XmqJ9TIUvLB9eHwo8FrUaRGFS?= =?us-ascii?Q?3Ho2VSLNeVp4glqQwTv0PqlTOQiL3BUVfa98VzuAu+68isxnsdAWAWhozgPm?= =?us-ascii?Q?JtKCIv7khotjQNvO1VkG3e21Qq1ixheV+eY8HuL4JDn1fJk98UZu4fUmEgET?= =?us-ascii?Q?w1vxiTjIsBN0GU4SH0jlPKhqSo7e5aYBtxayk6lRL+hyOcdkbGdyixpdbOfI?= =?us-ascii?Q?amJ6x7V3smgsn8uCChtyFs8rB4fo/VsL+r1PKit0+redJUHYzcnR6jngkeLn?= =?us-ascii?Q?tDY4OvD+MXICYigzctroC/yqV8P+KSW6FiJ16BIu5BwEd6Id57XKtDjoL8Er?= =?us-ascii?Q?qx6sHjpIgIffPiQ8eJncDXW6qTDyWR0dT9dpLiNnUH70qIl2cPohQn5t03//?= =?us-ascii?Q?uUPmGK2JM9fD4edqgVEpMAWeCyd5vHJpMltGeuwIfjKM52gzNWxE+te4dbaU?= =?us-ascii?Q?TmfrJgyacDRiG/I8V/H6s8Gn/5tdsn8rlQZTDffUCR4hSTRwkdytAGsELvek?= =?us-ascii?Q?zQXXzVcqoYkuh8zjlwkflbRs/jeGaLvgEycMnwSDT4WY1QAACvjQbXeUE+B9?= =?us-ascii?Q?30o+mexNZHIsan//i4PriI8LolfoimZkk5jZfIQZwgV8ITJgt5zzfM4alxKu?= =?us-ascii?Q?XF1+8+VfRQY+85i4BN+JcZoSBGP19u5yMWCo3+xzAWsQkl8WljYBlMcTmyth?= =?us-ascii?Q?il1mVeMjOAIsLcZty9hAkkL+su4E2AEleByoiPIC8N9TS/roCVM1vKz86/0S?= =?us-ascii?Q?U6G6mp5uTE21SM6QrtyeL9/1wV4Oosbhbaw9N2lpIRgrtS+U5So1sHQtpBL9?= =?us-ascii?Q?PXVuAKLKGB62HwbG83wXbKXQxsStnY642TSZwweIIiryQHQMFTEYFz/pEfKO?= =?us-ascii?Q?u7YWE08jqh3sEcJW8w5YECmdnYUUjebLubGRn2BaOGul27VWB4hEwwJGypZw?= =?us-ascii?Q?fat7qHriNZ37vpPZyzR0CcLVRfOjCavVh0b21ubmL1qH5Ft2MsaYfHV8UDIl?= =?us-ascii?Q?gCTzTC0g7JCblBq19TBJWUQjl7v39jCHs9oO7OGlFbQpWoYu4aLOA4GQW/u6?= =?us-ascii?Q?BMdlEAqRDwM9+7XCiWVt6Ygod4xlJdYVVJAb8IX7gK3gtu0Xpnv+ymgJBdrV?= =?us-ascii?Q?trWdqKs9ERzr2Q0ZCxKm63PMmQwi7ZDPuboeyAwtzcB7UQhRXVpLhsRaAEYx?= =?us-ascii?Q?URoIpSGfcm7a2fWHpXZ+18y+Rk9vhVpSLgExXbP+CIL08bUGo4khCmgJqVm2?= =?us-ascii?Q?NzRuGsKVltQQxNiPRUf/lC90t9jw/66fw9OekkQYrGz1WgCUowOTQB0a2ttq?= =?us-ascii?Q?9COY9tMm0upG2HzxdoEdtxJI/J/Xv4AJYvskNY1nBrPdhcIdH30DM/kpDiL5?= =?us-ascii?Q?F+eGo/luxC+e18hF06RnDnBhB9vhVIeTqtuydU51cHqYQvwPFX0xpslEqbqn?= =?us-ascii?Q?Cjx58Mezj3f+XsI76023Q5/iCurS1wBWk+eoq+ofZGoNH7JN1Hkyc1DAsKDi?= =?us-ascii?Q?9bfm8fqaW0Y2L7uPXtq60h149mS9oGGlH6/E0CdhsgKHf/8rBs0RjBuqzCGL?= =?us-ascii?Q?eLwv7w+T9vOyWqL0tT4prM3Z0+WvnkuX2jOoBitmYutpUtEhU/AE33XofeXR?= =?us-ascii?Q?kijeUb/E0XfCI4qLuqyd+cFDbt8lBkPRI27Mc56L6ZU4MGHnlqEFKsZ5hjXD?= =?us-ascii?Q?vckPnPo83g=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d10981e-1627-496e-28bc-08deaf3827b6 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:34:45.4780 (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: ujFOlR2cM4OGfnYDoJGnYDP4Hhg/r6+DhQxocTBKPejMMZhdKqAlQHg2Rm4N9RFJDYqF27RWjDCDXxUBWZvRFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" Move enetc_msg_pf_set_vf_primary_mac_addr() and enetc_msg_handle_rxmsg() to enetc_msg.c to consolidate VF mailbox message handling logic. Make enetc_msg_handle_rxmsg() static since it's only called from enetc_msg_task() within the same file. This prepares for integrating enetc_msg.c into the enetc-pf-common driver to be shared between ENETC v1 and v4 PF drivers. Signed-off-by: Wei Fang --- .../net/ethernet/freescale/enetc/enetc_msg.c | 47 +++++++++++++++++++ .../net/ethernet/freescale/enetc/enetc_pf.c | 47 ------------------- .../net/ethernet/freescale/enetc/enetc_pf.h | 1 - 3 files changed, 47 insertions(+), 48 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net= /ethernet/freescale/enetc/enetc_msg.c index 40d22ebe9224..81d1b87055a3 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -28,6 +28,53 @@ static irqreturn_t enetc_msg_psi_msix(int irq, void *dat= a) return IRQ_HANDLED; } =20 +/* Messaging */ +static u16 enetc_msg_pf_set_vf_primary_mac_addr(struct enetc_pf *pf, + int vf_id) +{ + struct enetc_vf_state *vf_state =3D &pf->vf_state[vf_id]; + struct enetc_msg_swbd *msg =3D &pf->rxmsg[vf_id]; + struct enetc_msg_cmd_set_primary_mac *cmd; + struct device *dev =3D &pf->si->pdev->dev; + u16 cmd_id; + char *addr; + + cmd =3D (struct enetc_msg_cmd_set_primary_mac *)msg->vaddr; + cmd_id =3D cmd->header.id; + if (cmd_id !=3D ENETC_MSG_CMD_MNG_ADD) + return ENETC_MSG_CMD_STATUS_FAIL; + + addr =3D cmd->mac.sa_data; + if (vf_state->flags & ENETC_VF_FLAG_PF_SET_MAC) + dev_warn(dev, "Attempt to override PF set mac addr for VF%d\n", + vf_id); + else + pf->ops->set_si_primary_mac(&pf->si->hw, vf_id + 1, addr); + + return ENETC_MSG_CMD_STATUS_OK; +} + +static void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf_id, u16 *st= atus) +{ + struct enetc_msg_swbd *msg =3D &pf->rxmsg[vf_id]; + struct device *dev =3D &pf->si->pdev->dev; + struct enetc_msg_cmd_header *cmd_hdr; + u16 cmd_type; + + *status =3D ENETC_MSG_CMD_STATUS_OK; + cmd_hdr =3D (struct enetc_msg_cmd_header *)msg->vaddr; + cmd_type =3D cmd_hdr->type; + + switch (cmd_type) { + case ENETC_MSG_CMD_MNG_MAC: + *status =3D enetc_msg_pf_set_vf_primary_mac_addr(pf, vf_id); + break; + default: + dev_err(dev, "command not supported (cmd_type: 0x%x)\n", + cmd_type); + } +} + static void enetc_msg_task(struct work_struct *work) { struct enetc_pf *pf =3D container_of(work, struct enetc_pf, msg_task); diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index 9063255d8ca5..b1620dc00146 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -476,53 +476,6 @@ static void enetc_configure_port(struct enetc_pf *pf) enetc_port_wr(hw, ENETC_PMR, ENETC_PMR_EN); } =20 -/* Messaging */ -static u16 enetc_msg_pf_set_vf_primary_mac_addr(struct enetc_pf *pf, - int vf_id) -{ - struct enetc_vf_state *vf_state =3D &pf->vf_state[vf_id]; - struct enetc_msg_swbd *msg =3D &pf->rxmsg[vf_id]; - struct enetc_msg_cmd_set_primary_mac *cmd; - struct device *dev =3D &pf->si->pdev->dev; - u16 cmd_id; - char *addr; - - cmd =3D (struct enetc_msg_cmd_set_primary_mac *)msg->vaddr; - cmd_id =3D cmd->header.id; - if (cmd_id !=3D ENETC_MSG_CMD_MNG_ADD) - return ENETC_MSG_CMD_STATUS_FAIL; - - addr =3D cmd->mac.sa_data; - if (vf_state->flags & ENETC_VF_FLAG_PF_SET_MAC) - dev_warn(dev, "Attempt to override PF set mac addr for VF%d\n", - vf_id); - else - pf->ops->set_si_primary_mac(&pf->si->hw, vf_id + 1, addr); - - return ENETC_MSG_CMD_STATUS_OK; -} - -void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf_id, u16 *status) -{ - struct enetc_msg_swbd *msg =3D &pf->rxmsg[vf_id]; - struct device *dev =3D &pf->si->pdev->dev; - struct enetc_msg_cmd_header *cmd_hdr; - u16 cmd_type; - - *status =3D ENETC_MSG_CMD_STATUS_OK; - cmd_hdr =3D (struct enetc_msg_cmd_header *)msg->vaddr; - cmd_type =3D cmd_hdr->type; - - switch (cmd_type) { - case ENETC_MSG_CMD_MNG_MAC: - *status =3D enetc_msg_pf_set_vf_primary_mac_addr(pf, vf_id); - break; - default: - dev_err(dev, "command not supported (cmd_type: 0x%x)\n", - cmd_type); - } -} - #ifdef CONFIG_PCI_IOV static int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs) { diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.h b/drivers/net/= ethernet/freescale/enetc/enetc_pf.h index ae407e9e9ee7..84f8b58a18f2 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.h @@ -70,4 +70,3 @@ struct enetc_pf { =20 int enetc_msg_psi_init(struct enetc_pf *pf); void enetc_msg_psi_free(struct enetc_pf *pf); -void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int mbox_id, u16 *status); --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010031.outbound.protection.outlook.com [52.101.84.31]) (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 2031C3BADB5; Mon, 11 May 2026 08:35:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488516; cv=fail; b=D5+YpvRqhMPTrVMAovzbWNbA1a5J/7qomc8JrPk1iWaKf/H8vuzm2/3mCQdErWsuEZLPwlaD4xe68AhMm7cHlDQCJit4FcxTpmrJ2VcsR3biQQPX/HsYlZCntrQFvAt5uYax0pcoeTBhmYrvicaP2bfcK4Wr6qgUlYpVfsdTLAM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488516; c=relaxed/simple; bh=WuDVe9lw/pLquF5kvyONzccGSioL6D99czA0DUtdDk8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=I073lYXQXQiQp3ntnGp1fxAGYQR2/0qC7ZfrCsRlc/3IaThgC/z5x4ModfO7XHJlDKan1YYDOt87THjM1tftB/heeHQObnYMhq+YBJNBIkqomJ5fzDxQs/YkCZm2qOcVQMLpIsH2pGLsbY9p+WZjiUMjLDc8ex1J3JgyZ0Ld+10= 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=a3Y4lLHt; arc=fail smtp.client-ip=52.101.84.31 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="a3Y4lLHt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pYqz2wjpmlV9w0bk0s7e2uETXRCobEXVlKB66woXInvfnv8efaL+Z1Lhbn0NgKQdURPAjm7sx+NuDhXAPvvxOjTuNyrE/E4/F86lZ2eT2jCl/mfHvj8WehvDMqAM1uOmr/kJeHhoEybCSuKHSZTx3Lx0F3Mwat1QumrW07izMC//dnl/0j+DX720h51B8NjeIUCQ2TJ1tsa9ZikA82A5feTmsOQZNuduMgDKYH6kencqZJSkh2LsFxNXgnte1DzVx2mrvJ3CNodKfTnVXmbTPwr6mFvYITgKJOnvPl95Xn/rX9GUkTzqUhOGwP8PU3ojv5mvD+O5aUUQyTFYcX3CkA== 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=K7dRZZoVd+T+RSoo04zEJM+pAqOoqZNh1hCx3DApChI=; b=XiltGB8rHLQnXfcuME/VyY+mYOko39PeFdSCLG6zbWz9IdcKbx/WTQkQHMhj40rJeUpfpZREyfQGJlXhymNrupZqyx1RGTj71LWPmK9s1STDiriIS+/KnVHkANxY136qDyz5ghr9GEiadwXD/luIyIaC9EK7T3d4U1nBBrn2qlUAJqQR5+9WdBdAPCRQSrjaY5+heo1/mzya70i0LsIcxoS3e/ROqtf7LfyaamvCQ0v94NCCPvkdYXeaSETLuqrEUx/3stSsu04zrvi9WLfdP8ugAIresRWcBX6714/JukNGED0mG3l/M+H2JTVf6Fh0j5GcKqGa2+5OmT6XrsElqA== 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=K7dRZZoVd+T+RSoo04zEJM+pAqOoqZNh1hCx3DApChI=; b=a3Y4lLHtIuEjD0FfjZJtjUcZNMvJxOErxG7Ump6D606qXzG6ABSBS2q5hFXs4iM78pkPGzXa99aSN/UzMa244yTlH3WDwYullTYOcQfloohgD6Qpzbnl3F+yUiCYeTG6Ei2CBin3dr/yCGm0fCaHDVKIKpwvoSqNUaq9JJDvqG5tdK1jtkBb0tL5bZtvUwlj2IUXTZ7OHFlUgYYzEPW4Fr84iOvkgXb0V1a+qHLjav9opHFlNN5oqmeYbKhaMgxcf7lW3wEBTzTBApKAo4nKa81M0lfOBBUthjboRPEplp8G9sfoMXvXNEBUBPQ91jsdDO3phOWwwO3rW6WgTvPt0w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:34:49 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:34:49 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 03/15] net: enetc: avoid VF->PF mailbox timeout during SR-IOV teardown Date: Mon, 11 May 2026 16:07:53 +0800 Message-Id: <20260511080805.2052495-4-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: 156eebf7-c883-4da6-e7ee-08deaf3829cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: A1nZGNykUbaVUfkUAkIc2+ACk3fSrNN0pnM+d4peKetdyFEFLuB9scSS5l2zaibkSsywDhbbdo8XRzUcKxNP8PBx9ZWo673r2C+N/rhp0NmGYYv9YL2p/C3qePC1J3smZfuFj6oAAMJtpQMoyLRJz8tsY1hR+0Wrt8m6uvbktYZrOaXwfenxC2LhrsRgoRRIM4XUJ1/Pf6vPhHn+ZXsi5UuRs/yJQhnZBT24F9nQLgnRDQOI3vFKjxVU+sTzLfd3EEn4SvMbf518piKHpKE7fFY5ttOLTfTDKnFHSRkrQAtLkWyGfI9SqxbY1/4CX71Cl+FrCuiWq6RRtlZrqnG6vIWr8hnAbQ6ANfXSq788MVBaKpAhLDIkZBqJMtJQf1H6rncMDaqww0tm9XCeHcqbDhOwYvInRn1UuxMMF6QFtOj5eqkTXZCY1QJCTebJ0osPHotSqaBwvQwxQ3pdir6iIJTSO0LTDGImVC6Vpuw0VG/tedERmeWDxD8zuOpHVrE67efnOCIeC74P/Iz39yCVu91UcuYB9ZGoHk6lDSySivWAsQ4WOFdiGcUFvhSL8zVRfmkh8ABAiwHwghq+PA3NfwoAiB7EescJveYTa+cDrsIOHuc/YgV359UbY1yyns0gM5OGmTofInKwTxytp9xxU3hA2+LlWrOi8MkEmbETCSDSeOniPYfWQtDhcGHo8TF3iVIh9O0izKuOplPewJYhhM5Z6nLcvyh488Qqc8urdC5Tb5eFZGL2Km6scXMh0GD1 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mIzxAg6diFd8mLIBk4OFBOtWJ74u4dhEW6zCmlmafwoGXYyGC8N1rCxLn/c6?= =?us-ascii?Q?WlkWK/+3RWZQjJcSqpB6J3YvbYPzcuGMGcOty4PKBcp9WRz8nPr5KCSxmNms?= =?us-ascii?Q?Z/xw93Y9NL1pzatELak44KtE9Yh3iY/00l+ENJn49+Www3Y/X6YBRGnxXiaR?= =?us-ascii?Q?+d2DQXMYllsTPyNQt3k/JjBx/uUmzi0XuVhr60+Yy+mswNpyp9FTFTdyVcoe?= =?us-ascii?Q?R7gn2O7TptomdiUmVWRzGldkDxtkR93RIT8nxCKXMGAf+2/3Ubduno2cPgDs?= =?us-ascii?Q?KZQ/2Dx1h/v6v76OXM5pNPEkPKdh0PFklKdGMzEnbdhTn6qP8WO6HQv8m4Wg?= =?us-ascii?Q?SH0hjVsLk0xAKUko0PFgfIrx8q3O9j0LYzwFjVtPMJlqd4ZJNntHR/DKeb8g?= =?us-ascii?Q?qH7lCVyq1xACiVe9T3/8c7Zoo+lira/NAgGTws9mJBmYvwyxmwDH4/mgfmdO?= =?us-ascii?Q?WcM83aXGPfXDy47FdNqF97bbqUmwGpEg6Jtjmd50yAiIecMiYE63KHlPeWnk?= =?us-ascii?Q?1Ejr1JNJ9Sxl/oVVlapTfRGfNLvhWVIrl+HIf/YWbIWiJluMX4kk/HqNpHO6?= =?us-ascii?Q?oP2uFPQeVl35/NcYfcOLVaIO/VXZLi/5ovcVUAwieGAB5pUk27Z5tzrsVWYV?= =?us-ascii?Q?+TwzymE4oUlI06e6kC5PSv1mWe3H/MfJVUlMDLR5MVS3BtHVnnixkn1lil/Y?= =?us-ascii?Q?+Ob9EnsIOMDuK+EUQKIL0HESoxub8mE0qD7XZL5RCLN3bkMG1I/B3iyZRWqP?= =?us-ascii?Q?JsjVW8I62oN+/cHz0ziXfG9wEfEYKZNyxf5yrALDGUMSt8YmctxMre1KAWSp?= =?us-ascii?Q?jdDS6oS0SKuqPWtvsOLENpM50KKL74TLB6FJBtaKdEN6wzz6Mp4Kkou/Dcxc?= =?us-ascii?Q?tsohO09FKJohtWvWOh0exeNPFUPRJPldd5nJuzM1Sc2Kq7g1fhJWivRXDMT6?= =?us-ascii?Q?YAubgMeVxSAqrhZRcK448xdvT38x1af8LZcrcIOpWdVwFVi1K6/WQ1A+ySAg?= =?us-ascii?Q?oVIluZcFSBNiLH6Tf2fyS8Vz8T7utpggEXa+oNanD9RKO7yXnoPN932/XOeH?= =?us-ascii?Q?DTxiqZfMhhdSIPs/bwK90abxArCNGE9HRdDsZv+hYNgWJ3ZP+eHr9C2NIe2q?= =?us-ascii?Q?5GWvG2D7VxDZ4L9V/P+uQg2X2Jhu8gwWhXg+44GcVQUA1jj6kPBgpyNhOSw2?= =?us-ascii?Q?lNhVMtLJs+875lSYrz2Gt8HhidsdWVMeyR+x/IbmaImNJ/W65EsYgZpX3Y15?= =?us-ascii?Q?3oPH7OE90ZUcs25la6U7bOdic3utrA8YAsh57wizN+uYPLhQh9H1nAxMDM8a?= =?us-ascii?Q?DnHu0nObC4bdQsAV15wdb6SZ9+g+bBA/6iqZODUZLrdTYJmp2WVx1WllKGdO?= =?us-ascii?Q?4aZV0FlfazPKQNby0buqETBykXlyriBwqE+vtOrnBc33ImoMYoYA6renekfv?= =?us-ascii?Q?T377BC/tWUPLHgt2cial57iYKRSOIlZI2et0wNnkuTYjj/FNQe/PKs85qpqd?= =?us-ascii?Q?pB2Jlr/L4X9fTRRd+X9pg0iYD2uJmVYh+HIK6vzMr8/KOhGZmmyXJSohqnBs?= =?us-ascii?Q?eoROmXv9IEs1i1S+F5KbyjMEScv4DlMRvU3Mcge1/E7/EjVcJJY7JERirsET?= =?us-ascii?Q?v/sTh+VWcJQY8bx2yyqpSbLFHOQC48Lt7Xjc7pMyw3Cu9noUT6PCWFAXklTb?= =?us-ascii?Q?dXoXEMlmerEDBpRQ4L74jnXcnqbbSFOaKGp8dPJSDgqzkX8njg0Q4QNfkYX2?= =?us-ascii?Q?CEXggiDc2w=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 156eebf7-c883-4da6-e7ee-08deaf3829cb X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:34:49.0740 (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: zsEa2vTHpObB1qUsSO2YwNE2eZ/h5ADo2ygb3mGWASJX47TSLoKunIYVwr9H9E6R6E8Mw9CXUkMaHjgpJEOOUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" During SR-IOV teardown, enetc_msg_psi_free() disables the MR interrupt before pci_disable_sriov() removes the VFs. If a VF sends a mailbox message during this window, the PF cannot receive it, causing the VF to timeout waiting for a reply. Since the timeout occurs during SR-IOV teardown when the VF is about to be removed anyway, it has no functional impact on operation. However, more messages will be added in the future, some visible error logs may confuse users. So fix it by calling pci_disable_sriov() first to remove all VFs, then safely clean up the mailbox resources. This eliminates the race window where VFs could send messages to an unresponsive PF. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/enetc_pf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index b1620dc00146..3ebc48c3fdf3 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -484,9 +484,9 @@ static int enetc_sriov_configure(struct pci_dev *pdev, = int num_vfs) int err; =20 if (!num_vfs) { + pci_disable_sriov(pdev); enetc_msg_psi_free(pf); pf->num_vfs =3D 0; - pci_disable_sriov(pdev); } else { pf->num_vfs =3D num_vfs; =20 --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011065.outbound.protection.outlook.com [52.101.70.65]) (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 C59BB3BAD84; Mon, 11 May 2026 08:35:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488525; cv=fail; b=umJ/zVm/kDdaP4TL2IFCzp65v61Ny7mymfzowCudH4pfW4W+p8J5rVy63tTG83ieLCg2nhRbGRChYbGZFUn27KicFTue7vF9lS1tHmudJHzDuzfcezlyK0MCVThQfR/6r0eY4nFTT33eKBqZj+AttVaFgRyw3s+TYbMikooU3Qw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488525; c=relaxed/simple; bh=3r0sQPb9zRd0urF8OwsOi8XwmsoBpzP/3fDfRVUf5/k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Qqq50gikVdyRG/jboA+cMqKG32d/QsCwvgx4bYqvbWbpOlCIYNvrZUR0LZWi3REmZ/ocIhXDA2QEnFJNc1hsby5EQ+8NCxe0K4SV7j+d0P7YDpz9anSk2jbYVKohx08UCTqRi9psVv6lYjpLDPjxqandPbYTUM7k8ekICOfhv3M= 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=GRpUEhqA; arc=fail smtp.client-ip=52.101.70.65 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="GRpUEhqA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rSylOwU1BPvyRPck0N5ma/TX1IaKyDRb42Xl6nmkxxGkQyJ+0SaWhQ1C2FbQrebRUfJK7FDmpl7nxtgppV2GZsqzfylmOotMuc1yVEL/YQeATy2F9Eobq9L9bruMKh2ZkqPShkcOnFi0t143DrC4OVuAIWVSyM5DwJzrBLCHw5aygczHQL2y9KKsGxSDafL2DnBiyvH4SDGUWky9vi26kxX4/R/b1xzC3nHUo6A2ZUCiy7vVbW6an9QeRmY/2rOaLsBLGaQQBxcf0UpVrQaY3TZdtmIV+GD4HNoEkYcPfjMHIAwxFH17KzOQX/3MiDQPm8qQUJ+Y3VbkNZu9nVXiBw== 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=S7Iki0SDTlMjDWNYpjMG3i8D+tbJFX/X5xADvC4jBTI=; b=j8pA/7Y5PxvHzFvf52uR2cP2o1tv6SCcqLsSzkmKbQh+i0NBEgD0NZ0mCWj7vH6Zll0aa67fwIk4wnCebO9T79AkZiIOyeEV2s+Nk1tcQRY+r4Cst/q8cYXTa7CKmeUP6+iZU5qyFODwnBRn5g4S7FhTWJzdDKTsKHIdvHh8WecsiSNc6/kw2PIuCWkrEogELDrys6887+WI8IayXCVKCz06h9yyaa/FwGxnd68c+O1ddz/RArxp5ON0EndVz7Bv3GLoyyyxKbI1cAn/BkXDpjGiEjQq2F35QnnPQepSusI3YRKmeCGk93ID9T+TwkBZTQW5mPfWKV/GJ8vm6qTiCQ== 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=S7Iki0SDTlMjDWNYpjMG3i8D+tbJFX/X5xADvC4jBTI=; b=GRpUEhqAn0LZT6QZ8hiB2xLsnod9XvLt1V+3hv+9zEGcnImUrN162JEwyC7R1/XtpeIpOOTSAuFekEhuvEsKgE/39pxf8JJhUtz4o4ChMVzE8vAOS2lRONv0l9SHyNLM+o0GMMANpSa/zFcM+fppPNIykLWGgBPAOdSgYolAu+jObk4klwnSzanvel8yRS8tpx3icpEl8PyDIU8GfjtBLoGt1ChjwODwlKavX+98SRntGsSII8gigNXCjGox3SD5j3kLjdTTFITOtaFrMFVjV5dCCYw+ps4Z+nPL/nJnnaHkumpPqAGNbcDlK0lXrTAGGx8NPBSGCKab78Q6B1Dcnw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:34:52 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:34:52 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 04/15] net: enetc: relocate SR-IOV configuration helper for common PF support Date: Mon, 11 May 2026 16:07:54 +0800 Message-Id: <20260511080805.2052495-5-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: c676c376-4196-4ca0-9945-08deaf382be8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: r0y505V91l4xi6cxPJvlUeyKkLGrV6QeXGdubB4PhZbRBY2hSkdx8FcDwSovxnvyju4zaQnb+0qL4TTZqyTXl5TNOA9hHXujUQSsswZLM7zq7z9dPGQPfxND96pJ80Uace7Fc6J1a3UNXq6H4bvX36N0Ogd3+vvuHrOHnn6Ro3+11um7DxdXNRlPByEU/LikYI9zAYfco/QJXZKqk+HF7hUIJk0BSqyRbvrUQn3uYTuyD8LKlghEjtcuU6Ep4c5E1SOK7HyN0vPSk3a1aAAyFVIhHl7i2dRUnAnpw4fTKPoPMyi3oqbEGFqx7u9+YQ5Z3quok5jntCfVFWF2JsrH0sNzBMIXg28muwAEPhFbQvi0x+31cN5FOaX8/dcSnEXDyVDtsyQKYiy55mo93Njjom6c3DJuQgMvdqxb4q876UTN0pHaeuCYjLNQSe87OzyWt/QqbOha7AQ8YLNYQmypJfQV8SyuyGgwapApelPOUxFroJuXDrCAds8D7bkyMunoPac6MnfMSabj7mC08hB9N35nzGXKTuSrrJ25eY0u/w0siNE3505xXJy3TyzdfFHJBit7rhpr3+4J9ilHvN4CdKG1BE6THy/Zw02TsTg9guVM1rJgGr5AOZ0WPcgB9lDmNY87WHxn+edjKM9SkRQSDfFi01/5F2RBBP3INjeoA6g/0kaiGfTopv0ccmGuvJT30WpjbfqAoQPMH+gSWD3IfJt+iNk0jrZd95h9Lkf5DLyjvg412zIdeSbTTZRg+bl4 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wI99AfVDhdqdFus95eweztVqk/5e+sV3p/RYgptd4yQ/vT3uVzIDn31mXVdO?= =?us-ascii?Q?lyHxIovXb907vvS22RnJ4L+zf6nR4gErWltqxCWegNg0o8OxuIGjfnyaZhEz?= =?us-ascii?Q?VxU3KQQ9WQ0ccHpWzAgQxUwM9f6XKccYze8j+iwrqJaf6W8XREq9jFYl6D+U?= =?us-ascii?Q?A6bdHqAmhiDGg4xN1D/jbCIfF/Y3jY1RlVIYYQHEzzssW+kGUGDx2c9YGTn1?= =?us-ascii?Q?nayNihRaZlNbv/EUtLce8IFFzOcw1BOv97impGxan0Syx6loSxnZa9J2/297?= =?us-ascii?Q?DkVqrFTUMAlHnq3lwx0VcjHLKslJQUUgVtAeZIqklKKuEy0OTjkTcjpuF5St?= =?us-ascii?Q?cLm+cYwhdYpVQAU3hN6vV5swd0LTtyhoTqN33TOZBgSl10Xf9tqXaYOwHI0d?= =?us-ascii?Q?XzIx1ifFsT62hX5po6BhBc/+miZbJdN/jNsEBeR8aixmDhKuGJ0/TtN1+/nX?= =?us-ascii?Q?hKrVx0IUQ+FNGuPT9Dl7/Y6L7gC5YnSobUl2/JYb1nXSbmhcCaVr+VaPSa/L?= =?us-ascii?Q?LRTCzO2ViR2kSXPxXNfcplT3Lt2XyNka4UpgIRAoG30TpITz1RGdc09FJOoG?= =?us-ascii?Q?YEiNRSfqlw3XbDHq10B0bHnPDbNlWfWAraPJFQNDyWwAyE9J4ZBUxj0KObpr?= =?us-ascii?Q?vApok9f+8Srzs80pb9xrPaHHK5zX0/t2mAxgI77A41XFpN0geuboEzxDFR+p?= =?us-ascii?Q?VOJ8XN0+XTAxprAYO6crAZh7jH4Gj1gkcqGQw9WqgR0lMSCI8PHET/06idgg?= =?us-ascii?Q?0tDzXUypG2aYT7iqJ3WMSLt4eWDMdkZQ4qYgZyf+QZY+Q5sCSAehdauAaIz8?= =?us-ascii?Q?mk2CTrNTUUmRMVefsWXZSz0rXjqbGB9t8O2LCYHdMUd1QNcnwHVU/Szabhqh?= =?us-ascii?Q?+SN+BlnbBHJVWU2el5tVgKbn+Jv7w+RKXvE+EHGA4uEZsmgK4u2jwQXbGd6f?= =?us-ascii?Q?+xeZMSxUvZCgeOC0CWpHLIMtDUtj1lVi+nSkVG1XpngVRSAsEW8YFcSItAr7?= =?us-ascii?Q?hgzkecooGI3QAIwRrhSvfQdTMj/a8g7O6ZOXcqH7DIFW/mL8ro0/kmYBvBEW?= =?us-ascii?Q?mByJsCIyA6faFzWs4+8ret73IAdYlwXoShItPaLX4igNlKJTBnM2MQ0XpRz+?= =?us-ascii?Q?boX5pUrLNODTOHGaLVCqn1ySWLQnxZ2lSYUjFRHCsAvUyDZj8/g1u5AwymLy?= =?us-ascii?Q?5OG5p66lGAEjPYxoPZIUldXGyyg2eW3htpnEfeYrX+026BNslJy0zIpNvxdy?= =?us-ascii?Q?tNAoQ0ZMr75OB2VOo9kCUPLbS/G1ljPBmLooO8r1t29pM5pwF1r56dRp2xuE?= =?us-ascii?Q?Xr3fHX3iN4Buh81eF8u7FwsYzRrWPqTYS0VL6sHVouBpNE/NSwTGiunZ6kDE?= =?us-ascii?Q?BaOFhX8m6epX5BmJt5lxYvLinozzv8S4C+J3/FvifiR/SVtS8WVZJGYAjNq0?= =?us-ascii?Q?Z9CA9zQcBU8mBzrrDbg9OH3y/ORDE5EXZ4h/qOOktcyzOLZbE1AsTEm9oFAH?= =?us-ascii?Q?WW+R2qYINS+dsYrhfOf5GI0VldWk8O4Xe3J2+bW/FAz3uAcRVnhaYtv1bh1G?= =?us-ascii?Q?byGnB74Pj4kuUMI8bgYjcZ9PueN29JPbBz4q6qp4+9KrmGsE4MgYMVSs1gF3?= =?us-ascii?Q?eU3bDkGHWt2BfnyfrjkmO5pCubDB+f8JO++1m2miXSPa5bUd8Lnmba8YVhUj?= =?us-ascii?Q?axZ1U8Td0xcKrrUQlptcEjrbSxSUH2vV+GqlvSNV4wPo50vZZIdC2avm11c2?= =?us-ascii?Q?HCJ5xYS77w=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c676c376-4196-4ca0-9945-08deaf382be8 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:34:52.4702 (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: 8qV4kVc0BvdlCd7hR+Qv2OsBc0HKLYEfYjeELVWvE0LexlZRTM554KV7IeLXyV08z0Ywo8otwMo4l9gj59MTpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" Move enetc_sriov_configure() from enetc_pf.c to enetc_msg.c to prepare for integrating enetc_msg.c into the enetc-pf-common driver, where it will be shared between ENETC v1 and v4 PF drivers. Since enetc_msg_psi_init() and enetc_msg_psi_free() are now only called from enetc_sriov_configure() within the same file, make them static. Signed-off-by: Wei Fang --- .../net/ethernet/freescale/enetc/enetc_msg.c | 40 ++++++++++++++++++- .../net/ethernet/freescale/enetc/enetc_pf.c | 40 ------------------- .../net/ethernet/freescale/enetc/enetc_pf.h | 10 ++++- 3 files changed, 46 insertions(+), 44 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net= /ethernet/freescale/enetc/enetc_msg.c index 81d1b87055a3..6f7927f40bea 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -151,7 +151,7 @@ static void enetc_msg_free_mbx(struct enetc_si *si, int= idx) enetc_wr(hw, ENETC_PSIVMSGRCVAR1(idx), 0); } =20 -int enetc_msg_psi_init(struct enetc_pf *pf) +static int enetc_msg_psi_init(struct enetc_pf *pf) { struct enetc_si *si =3D pf->si; int vector, i, err; @@ -193,7 +193,7 @@ int enetc_msg_psi_init(struct enetc_pf *pf) return err; } =20 -void enetc_msg_psi_free(struct enetc_pf *pf) +static void enetc_msg_psi_free(struct enetc_pf *pf) { struct enetc_si *si =3D pf->si; int i; @@ -209,3 +209,39 @@ void enetc_msg_psi_free(struct enetc_pf *pf) /* de-register message passing interrupt handler */ free_irq(pci_irq_vector(si->pdev, ENETC_SI_INT_IDX), si); } + +int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs) +{ + struct enetc_si *si =3D pci_get_drvdata(pdev); + struct enetc_pf *pf =3D enetc_si_priv(si); + int err; + + if (!num_vfs) { + pci_disable_sriov(pdev); + enetc_msg_psi_free(pf); + pf->num_vfs =3D 0; + } else { + pf->num_vfs =3D num_vfs; + + err =3D enetc_msg_psi_init(pf); + if (err) { + dev_err(&pdev->dev, "enetc_msg_psi_init (%d)\n", err); + goto err_msg_psi; + } + + err =3D pci_enable_sriov(pdev, num_vfs); + if (err) { + dev_err(&pdev->dev, "pci_enable_sriov err %d\n", err); + goto err_en_sriov; + } + } + + return num_vfs; + +err_en_sriov: + enetc_msg_psi_free(pf); +err_msg_psi: + pf->num_vfs =3D 0; + + return err; +} diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index 3ebc48c3fdf3..fea5cb6a1662 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -476,46 +476,6 @@ static void enetc_configure_port(struct enetc_pf *pf) enetc_port_wr(hw, ENETC_PMR, ENETC_PMR_EN); } =20 -#ifdef CONFIG_PCI_IOV -static int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs) -{ - struct enetc_si *si =3D pci_get_drvdata(pdev); - struct enetc_pf *pf =3D enetc_si_priv(si); - int err; - - if (!num_vfs) { - pci_disable_sriov(pdev); - enetc_msg_psi_free(pf); - pf->num_vfs =3D 0; - } else { - pf->num_vfs =3D num_vfs; - - err =3D enetc_msg_psi_init(pf); - if (err) { - dev_err(&pdev->dev, "enetc_msg_psi_init (%d)\n", err); - goto err_msg_psi; - } - - err =3D pci_enable_sriov(pdev, num_vfs); - if (err) { - dev_err(&pdev->dev, "pci_enable_sriov err %d\n", err); - goto err_en_sriov; - } - } - - return num_vfs; - -err_en_sriov: - enetc_msg_psi_free(pf); -err_msg_psi: - pf->num_vfs =3D 0; - - return err; -} -#else -#define enetc_sriov_configure(pdev, num_vfs) (void)0 -#endif - static int enetc_pf_set_features(struct net_device *ndev, netdev_features_t features) { diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.h b/drivers/net/= ethernet/freescale/enetc/enetc_pf.h index 84f8b58a18f2..44cfb7bdd7e8 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.h @@ -68,5 +68,11 @@ struct enetc_pf { #define phylink_to_enetc_pf(config) \ container_of((config), struct enetc_pf, phylink_config) =20 -int enetc_msg_psi_init(struct enetc_pf *pf); -void enetc_msg_psi_free(struct enetc_pf *pf); +#if IS_ENABLED(CONFIG_PCI_IOV) +int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs); +#else +static inline int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs) +{ + return 0; +} +#endif --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010031.outbound.protection.outlook.com [52.101.84.31]) (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 E15163BB9EF; Mon, 11 May 2026 08:35:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488525; cv=fail; b=KXf1syqZ9gUDO+3sbcEQTzkyJfSP13FyeXF5xp0nsEFDNJdn4+ep2nLaGP8PI926DqKtOeGDnhR7L1RK8txh2gqeyuG1rrqApBB+IKJzkW4wMwSJi+wHmIEJ9Ulioekuo5N1DmP4itUrE1tZvvdB2iwRHJywJBrluAhf7OQaLVQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488525; c=relaxed/simple; bh=XSR729WUHSkcebFMtQmZOSmaabQCHHVxR2372dsfhK0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=cTrYDneBY8uXY2m6JjjCecb2+bZbO8Fysh66YmeYoiCz6yGti1pVh/Kz9NP/VGt6TYUUqAD2yE7p6pvP2ve5zR/pjrUjkxe0ngIlag4gN2CpOUrAgPWFpnFUDfbW9GNcR/L1x23kLt/HkoMeqD/IO30I67vrGLYl8NihseUHW4Q= 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=ImzhTa6r; arc=fail smtp.client-ip=52.101.84.31 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="ImzhTa6r" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=roy2HyTcNigIxzt8nPW8pig4dywM8Fwxc4S0deQD0pO+a7LW5nUT50VlwJbj1qnrwdW6wjb4COTIzxf2ofnAiMn6/D2A8n/LMSxS81ks/ihekt2DTikZ7B23ddiIWNw0cKq5gPiCPUmsAptsI6j1riijtuDAx4a9o6FeaukGFoW3bcgOz+2uAljIM8emX+KRCB3Ne+92MhZK2XNoCtmxFIQvPNQMDq/A7AYChwFL+I0eHxPco7tF9hZur8NXs/0n7a3R45uOwyytqN+frxGpPPQlOTehJ8yXGjIiv4PGJYRabDZR7OQ8qb7ZWs7mtmyL/SMRJc1WLomhf8VVHRGyUg== 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=kli22O7M+23ruj6+6QTOQxjN8xRSxdnsrOanxceTcoo=; b=cxSKwGvlyoqyFwOkG8NS0Lc79PDWDTG5pSpbwiwoZV0sTWVYHF7drIWJ3oU2PweFgYxVnIgLpzZFhrEEnduYtLmk0D8KotZcANkluyRLZ0SkDaXo/5URacj/0wd7n+gvvGulvKhDL32BqPSaUQIkJn1MZf+Jyrp9zOkhOAkGSyHFKaH7CN9qJ2eYyZek5ttO/r/X97LDXdn/2IYQejOJdQ5oMDWOhqxjyi7qUc0DqE2SMTj12C0xAzFpCp05lGE/22h1Bs643seQ72KMa/IbTHBL0zvpXlssSSiyGSv5ttty9vpDOW7fM2Z2Q6IuLxvucDgNMU5ZBra3AgAJ26nsag== 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=kli22O7M+23ruj6+6QTOQxjN8xRSxdnsrOanxceTcoo=; b=ImzhTa6rOer5ZdIBSluH7vKjM5NkiRbXOYHUg6ghcT1Si3pWUf1/qvpvuGoDsYQxLUnPEbgaJ71m+3EW8l1lKQK0N2OK7UaNgM/WaNtmLdEv6s0p1E0n5oOEgHJTsRhF6HvT3x6cxnN19PFodfkUoFuvAxkAQ/bhoJWs4WdY2ZZ61n+8Gp6MdoJuC2ezErRnuGdSS2+jnhq3GM4DQ0c6i1Jwb6NeeO09QLKVQ+9PvajN9Z+aHI6fMSS23OaIFZsmUf697jyfNVcPa5dzRGPyOKF1b6HT6Zjcoq2UNK+bG2qg2bp4uFM/BqVU8C9arQxbQuRHrhSMpw83uGl9YizEPQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:34:56 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:34:55 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 05/15] net: enetc: integrate enetc_msg.c into enetc-pf-common driver Date: Mon, 11 May 2026 16:07:55 +0800 Message-Id: <20260511080805.2052495-6-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: e74e417e-5600-4f9d-dd75-08deaf382df1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: WrUwu/fXxEU8M8QNmPsQZI7J1HVWB8fCqLQyKejYYJ1T21i3VZmU06RykZElH+HMiWHcK563lsEi6Z3JgUXltgMExJ+72MmWmnhnsjwPZ5jfiT7B5mVzvaEY+HSpBclcA3UKU2DcPwv9mwniUIUPabRRiY654B66rWhaMkYTmhtP67yO0tqtqRL6PpPWs2FtZyp4XCJQE5b6fjWAWY2TUyjuzSxVVbbUaKZRxZqY4QsRUsyIhSbhJZehTdd2I77dQT9gk7qarkJyG2MDdi0yp5lg7pLoS2nPrpZG7RpdIhY1g3ywtZdkciQuF2IR2S943PvrHr1MCd3IW8ShY2JSdqO6e8mY8JEu++JXyw7qHaPwMoPzPrdU1ivJ+seo8rkqNzcMDoUlQhEvai2hjEYYoIkeikVstvJY8TppAan9UHdCfOvz3SgTdOwTzvS1HfLrocABtGL8/6rEj5T4I8pObGoj4Ja4a4yhsIEy8nohNGlCqxgUOhUgKJK8GIA+GV2fm4wu2Slg2t/qzYtMP0S5ooumElGA+FDZQVAAVIjrsejvNxGWwtY7BvkOPnn3snDD1+ss3wa8EVokZiUlz/Eo5hPLe3SL6ms3sOuO4PNcSkvZ/2D6l9lcnrQSDPdcy3tMnie6oZ2SU8/4LC0G6EpshHMz+50MViIoEaAhzWZ+r4wZXZcJQX2L3UpniA80w8XpQ+zg/AxRydArDH3RX4JYkG8kf2CP/yE60RjxrTNEvsSEtkcc3OoRmlEwa8GKowgJ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?t/HnFNkJAqTsH8lB1poiNwAThbtFHDlU7A0wHPNdLF8Dmkb0F/49doDpH6O5?= =?us-ascii?Q?UcTKhilbqfscriUXSwnRlgErfQ7XPG0vd+m236vweY+xhuKdsRHWkbkALopX?= =?us-ascii?Q?axFa4VySX3Z3dbYM9+plJA/ABMKwAyehlSbNQdXyAGPPJ1RDCTs7i8YIuLhC?= =?us-ascii?Q?/T+gdasVFtFNsebNBsm97+nXzPV4IzhKivtKPyBF8PkLmGse/EVxyl4fQKu0?= =?us-ascii?Q?1xZxbUkxapD3A5DLxemVHHF+UX3kzdLEZv/1m2NuQBgJVSQVhNwoUy5o/9N+?= =?us-ascii?Q?m8dOLcSRneylrAmddQ8v7lUOSaiFtosKlCIdlRBN+hDBILz1cJVLJPO+6hwj?= =?us-ascii?Q?0xILnHNDIDrYq2pgznE47B481tiu+APy86SQd1ecYj0obIvRqW4yXw2OgBco?= =?us-ascii?Q?caFQyq8D8miYfoC+L2+RH9LU6giaG8Ed3jtNxJT+p86qtCVPo5ZLLloVahUp?= =?us-ascii?Q?kPc1Ubf/Y8gTCq3M/ucypXEQt0MpvfbyA7U8DDbhiUGibB5YyRrv8EgbVoig?= =?us-ascii?Q?4Gg1/S5qHiUK99G1Bi8N8oqXkNCEgLR9nlsW6cv7Dsv6n7YGSiymWgGu2tLL?= =?us-ascii?Q?yTGXOG2GVm0Dcyg67RUiLLXpoyeE3z7k9ZjsvHh3/kxBpDX/4ibUamX9DvOd?= =?us-ascii?Q?DgA7WlDdrJjWuDzZw/+FifK/5SJXEYFXaNzj+TzXn2SoqB7EtpS6PaN+m/XD?= =?us-ascii?Q?2LRLREor1wz5mdMq0DGj5/juwKR1Exg8mbxjzu0W+Gi+nw6WCp5EJ+VQv6i5?= =?us-ascii?Q?BAfyzUYQSsBWxfSrubeRLYoWSEBExKd30r0VMqH7qRSO0ZESrBjSlnyp3hpV?= =?us-ascii?Q?g8AsSW7tXBDvcGZ+YN7Nm+C6Gg/eyJRW/eq4HLwdFjJaeYxt7x6W7cFygyUT?= =?us-ascii?Q?MseZWaTCJBotrwKhDhZ/4cFmjXIHin9poQg0KIALRaSlLlNhBPZ2otkczqEb?= =?us-ascii?Q?zoVkAcPjoJ3hpIBL3IXM7/6A3Uz9UGsfjNc8gL0xzePyG30XJ2jHTdsh/HPl?= =?us-ascii?Q?gXqQ7yq+TMviJ/xpNYI4ZyIzLeMS+eWpJPgYuK+cmPFq85TUQVJMny/FzLla?= =?us-ascii?Q?7K9CF2U7CXlpmbFnXTjeASaGXg5gbAQKVrjiXaNequ9oKpofyWKvyooRCWCc?= =?us-ascii?Q?MpPUAW9/84Hc5kMoksBbfJXPCi+GArM2T+Jj2ZEQVMBCcPNuRkkFyZZxTJfy?= =?us-ascii?Q?q/53jArGczMmK2uJwxAftMeQjIMwrnhhN85d+3cSUI+8B8/6RedVsu/lqtaS?= =?us-ascii?Q?Hvk4hHfJ773gOUEngjToV6040D8QQEOyhvbh1QRF/hgJ5rbDWxLfdiNUGtX7?= =?us-ascii?Q?aWW6kFEJdmIcZ8xeB4cLPEHXqZ8UpjH3XlGRk0cRH6V0GdRO3qVJEd7bppMU?= =?us-ascii?Q?ohrwylbGzCB+6WbJVrvsRGCNoLZm6+lp0qIJJ8tH7ojN5h4pZH4JzpnurTsA?= =?us-ascii?Q?Z4Qc6bm0ixPikTzgiCbqLKFoXzln7yaiPuIPAIQ3T/3qJuSxX9zbOnlNFODb?= =?us-ascii?Q?wphSfpYboLUjOWu+SIWyTJhwmzAoZzWgx/Ow951y3AELXvgc+l3mHlI+IoTO?= =?us-ascii?Q?VgbwVkwO6SMtVibOnrBS4GqMYL2tHPclfs6Y6uuppwSZfxncNYlFgfwrU0vI?= =?us-ascii?Q?uexm/8NI9N/wLHXZhTMRkA8rnV/B+i0iArtkNVWzIlhLV7XCgaKhsqn2GVse?= =?us-ascii?Q?XH16i9AlvhINWtIogjsXOXMeQRyTkAXV0ZHfX1SZgjc972YH68sCN9bhFrs0?= =?us-ascii?Q?7RJwmr9fPA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e74e417e-5600-4f9d-dd75-08deaf382df1 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:34:55.9040 (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: 6Bd+XDtkB+5w4yX96xbD2OP64A58+RqxenImScP/YqVYFJEzwnihvrvXE8Pc7S5cwsZem7NON9MYz5V6SH60fQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" Move enetc_msg.c from the fsl-enetc driver to the nxp-enetc-pf-common driver so that SR-IOV mailbox handling can be shared between ENETC v1 and v4 PF drivers. Changes: - Move enetc_msg.o compilation from fsl-enetc to nxp-enetc-pf-common - Export enetc_sriov_configure() with EXPORT_SYMBOL_GPL for use by both PF drivers - Move enetc_sriov_configure() declaration from enetc_pf.h to enetc_pf_common.h - Update enetc_msg.c to include enetc_pf_common.h instead of enetc_pf.h The fsl-enetc driver now depends on nxp-enetc-pf-common for SR-IOV functionality. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/Makefile | 2 +- drivers/net/ethernet/freescale/enetc/enetc_msg.c | 3 ++- drivers/net/ethernet/freescale/enetc/enetc_pf.h | 9 --------- drivers/net/ethernet/freescale/enetc/enetc_pf_common.h | 9 +++++++++ 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/Makefile b/drivers/net/et= hernet/freescale/enetc/Makefile index f1c5ad45fd76..10ab6694c314 100644 --- a/drivers/net/ethernet/freescale/enetc/Makefile +++ b/drivers/net/ethernet/freescale/enetc/Makefile @@ -5,13 +5,13 @@ fsl-enetc-core-y :=3D enetc.o enetc_cbdr.o enetc_ethtool.o =20 obj-$(CONFIG_NXP_ENETC_PF_COMMON) +=3D nxp-enetc-pf-common.o nxp-enetc-pf-common-y :=3D enetc_pf_common.o +nxp-enetc-pf-common-$(CONFIG_PCI_IOV) +=3D enetc_msg.o =20 obj-$(CONFIG_NXP_NETC_LIB) +=3D nxp-netc-lib.o nxp-netc-lib-y :=3D ntmp.o =20 obj-$(CONFIG_FSL_ENETC) +=3D fsl-enetc.o fsl-enetc-y :=3D enetc_pf.o -fsl-enetc-$(CONFIG_PCI_IOV) +=3D enetc_msg.o fsl-enetc-$(CONFIG_FSL_ENETC_QOS) +=3D enetc_qos.o =20 obj-$(CONFIG_NXP_ENETC4) +=3D nxp-enetc4.o diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net= /ethernet/freescale/enetc/enetc_msg.c index 6f7927f40bea..a137fa1e6f20 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) /* Copyright 2017-2019 NXP */ =20 -#include "enetc_pf.h" +#include "enetc_pf_common.h" =20 static void enetc_msg_disable_mr_int(struct enetc_hw *hw) { @@ -245,3 +245,4 @@ int enetc_sriov_configure(struct pci_dev *pdev, int num= _vfs) =20 return err; } +EXPORT_SYMBOL_GPL(enetc_sriov_configure); diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.h b/drivers/net/= ethernet/freescale/enetc/enetc_pf.h index 44cfb7bdd7e8..731d56bad5fc 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.h @@ -67,12 +67,3 @@ struct enetc_pf { =20 #define phylink_to_enetc_pf(config) \ container_of((config), struct enetc_pf, phylink_config) - -#if IS_ENABLED(CONFIG_PCI_IOV) -int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs); -#else -static inline int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs) -{ - return 0; -} -#endif diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf_common.h b/drive= rs/net/ethernet/freescale/enetc/enetc_pf_common.h index 96d4840a3107..548323d29f36 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf_common.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf_common.h @@ -20,3 +20,12 @@ static inline u16 enetc_get_ip_revision(struct enetc_hw = *hw) { return enetc_global_rd(hw, ENETC_G_EIPBRR0) & EIPBRR0_REVISION; } + +#if IS_ENABLED(CONFIG_PCI_IOV) +int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs); +#else +static inline int enetc_sriov_configure(struct pci_dev *pdev, int num_vfs) +{ + return 0; +} +#endif --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010031.outbound.protection.outlook.com [52.101.84.31]) (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 D0E863BBA1A; Mon, 11 May 2026 08:35:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488535; cv=fail; b=QJTFOrVaUpXANECt1KtnNv3vDJIYdzD9EOW9ctJzbb0abqXYtms4XKBguG/X1TAu9iE3st9c+BK+rwaDDPPWeJTVIQT+8qHWZVBGZJeSMf5o4lXuK6Zyli3SPGbbVUHh575z5fanP9JgnlcYJ2Hbe1TWtmuY1CLbHDnaY9lqRI0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488535; c=relaxed/simple; bh=cWrGKjEtIyRhQW5mL1zGuudPTHdIiKwl0H4UVClnclE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=dBBlQ0nwiJapbd8F2F1kVnXIYb0no+OOyQCaYBIjIxLM+kBTqgnarPc/Afu++WePlGaV1QrHqSrNqSRLRMw2dJUMmggIYrBt68lAIf8TlD+K07muT7jIv+YZustxl1jr9O4vaMZozWfNqDlh/nXjjykHuhhLIcK0B8S/7cVX06s= 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=N34mmbwL; arc=fail smtp.client-ip=52.101.84.31 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="N34mmbwL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=os6Wc8ffuzS2IbBtPBfDdq75SRPG3ihWtGm2nyJEs776ErjwVKK+pDBdgtqjyPkbjs6Fd2zYlpMUp40stz+G0ukL0hrf8z7FbD5ko6urPkzXxN+4Ig0Uv7AbVZ9YBxTjoM/oOsgyQjSZKkahXZeWUTRskGPXUe3/cTpnQ6yLiaO2BDR3c8OGweffb82iFCAO8n0VKSY9vyYW0xVqQvSGxP81uKo/FaYSWuG4CbvO0fi8fq3F26C6USMlLD/71u0b/7tXpC2VwEabpMzTSv/VhlmQeVsR85mQ15dF4wZh2AMVAPurCEdND9So/trC1fStEkAsB4FxOEKq0a1jRHRBmw== 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=876jopHB6utsFA9UFh/LhPQmcYrHsHn3hAN/ZauBWpk=; b=NCV4YMP3EuEtXo8E2CM1JS58LIJJ5t49kfk+ygI0ZrjJrIS9ZLEVJM2mVd/3yzmlcmkcuo3aoCXJiqF8rvy3dewvWosFb6/O8tzDtlD7NRaCWOkBSA04nPUU+M2dRQSDzDW7U3q6s5LPmwDnwD701otntnCoZUxLJhkgYgSXnXu392sKkEDbpgVSU/DV3PWyaqvv5UYfPf93+YRL2/1i7h6tQZTxTmt2sgfvwd3i7uvFf+e0JaiOfOsTCa5WjPVmMT2r76AptoY5+xfx7D/qkYvFqAsWNTK6yJLqN/6S/BpDqjVYOnpCiXMyGn7PGc/c8CAeXkpoHHvJc2ycInA/ew== 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=876jopHB6utsFA9UFh/LhPQmcYrHsHn3hAN/ZauBWpk=; b=N34mmbwLdMegjgpPE6UItGF1DJUuDOudjCprPLeFZQfJXhvnTs/u+qMlDPUXEoFFmYjIIV+dks0JtUD+BRfta7wynXiXvymWBdbONr/F4zDbErIdccNfOY5DmT4UAcLnAHql9lQ72mLF1nvo/0SIKNgDT5iFeLAdlFFcdRHlB+EHvjBLNvrJlwugxLSaC0iGQIe24JrImZ3CQa5RnIS0Kv3X0dKR20ZP+kS36Nsl/vpWf71QqrTPaOLG8GvqHOqlZmQTXFXnhBe2Qc8P6iOR2OgvRDbO16arh+reFy3hIZVBv09LuQz1lOOmPTLLcLRySKvs3Ohf3R7p1Gpa4vzNKA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:34:59 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:34:59 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 06/15] net: enetc: use read_poll_timeout() for VF mailbox polling Date: Mon, 11 May 2026 16:07:56 +0800 Message-Id: <20260511080805.2052495-7-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: 00d96e22-c0d1-482d-1d9f-08deaf383000 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: b0lAA5dvxUd/DzsoL85uruFFmbyugkfgtMealiBzLFQhVT2PH9kICMGpypX01VAuidNbXVukjt0j6UvWn/B99TGhmShZPrgEJqcJMZs8hk2ic7VXl/G0pqRZroyUtCaqxx3RsPhj1ONwdr35MO5Mk62RIB31HE8Z3xxfho/NX9Te+12l7V3HO+8WinZ/bItjoTWWzM552XtfHwQtr4GFjBFZ7mxLw3gNSyO6mZRsUDe3g3sQYlho8ONri3YX3ntdwa05C1Q8j6rVmzJgSpm2Gk2fuLfRTOhNQMvN3rRLFu9q+3Cw8xZ4TXeZEXIXCVWFhB/Ys7Eajp5dTO4n0TqoJrM6qc6ajW5BiKZILPb59za3pO5lOgzgYURMbrPovB3wpRKyCg8IDGZx5+v8jzGrTmMiiQDLsWXi8DzXDV+eh61i3Cy3O5lBlXc7JYmUdYPSIFszEgiL1gqO8lsCRWyj7QH2etK9lOcCmUwSrDXPQ+KVrdYV7OpOcdemXZ0DLsvNLduyaQ0b5PsqlQyX9CZ+dVVw+f/3LWEB+qpo1EUyUFQ64XlMGlpD1VOJoyASH+JzTTBiH0XaVEP/1SwB9UdYuIAQ4J1hUmo518m13CGfigltz8ygV6CC07XKMss72lR6W8sGFnfCb3gYVyiQZFEeJLj8N6NAQ6JulpioDAObnf4xepO9onxfSh56gGHFRA2TIdm/2H4SX65eXccLPyNow1hOp+6Nle/RqJkjUIXCChb3T0riZ7cUFGSsj3MJcapD X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3orKz3jpL5LrsCJ+UmE/A/fpZ9XZyIBOhN3EY7PAQ3fI2IYSNTNJKzzDTaQx?= =?us-ascii?Q?Qz1aSS/lX8YyryYih+bKSD/D/DWvkr8CgZEKKZrOWBmNxn9u+JiJN1/KRzXB?= =?us-ascii?Q?IF7TtRXNat9q7GnHqfheiAiq300UZoVgipKlpgmRz03IN888ySF9QIUpumSa?= =?us-ascii?Q?bqRbaWNhId7PsSlK6yMpXnTIIza15dXZ8CozBJ61a/K1j5V/GFk3Gmcu9/11?= =?us-ascii?Q?6nW/TbCteqdOLU6i5swwzImySf1CASapicNafzjIGRkZKGsmnSk+0BJYFQZS?= =?us-ascii?Q?mnCycZypFxhNztaJI4xBBbzvJPp99OUJZI6GXRTuhBV1VraOHDayMhy261b9?= =?us-ascii?Q?jmaVIf2RrkK/UxZRW4GIiBJU8GPNw3F96MxoFpmnywpeInWU9XZxpSH6GrsD?= =?us-ascii?Q?GYndA7wOWgt/Xxt0Gr8X8PSDbsNHQAd9pA5tpBTu6uOkOOzHuZmB5se7aFd3?= =?us-ascii?Q?pTKr7el/UDCi4ICJ06eVFPbMLV5vsmMrcuzSuIK+urFML3iJRIDBQzWbyzRs?= =?us-ascii?Q?7k1ZUNJM5ywgyY4Q/Tu1kzLgSwCsuSK6gpqWBt1UyXkqDyytZ6mLuXbBjbk1?= =?us-ascii?Q?N3BmGqTXcT0yMr+iZhhELpDPRquqMgdtb7N667DYSqFVOJvIF6/oZHzYnHP/?= =?us-ascii?Q?jIS1arBt5afqnd43/HEXfP5/7T2MMQtWUF2as5EFQJ2pnbs6XRITRxjxIdJ1?= =?us-ascii?Q?R+ic/ISwaDI08afULVWqsjzb+GPTE3cWde+HgoHpsL0rpDwp9S3drcT4/iez?= =?us-ascii?Q?fV7qE6UmPsiso85j6j83n09KiitX0jX4UwWUAWLbgWLICf+YNg9lJrxfHqv4?= =?us-ascii?Q?AH3JTrSssHArBzyfk+51Ah3vlNPtvjTSPyCjW7evOPC5bU4jSpxEX75KcJUd?= =?us-ascii?Q?3/uavs1c9SRsGZtxKDcMtdFhGzgk+MrNdHC+jBW0Ms7uyeBEzvgo320A82Xy?= =?us-ascii?Q?PsOIKzyOTZZ5Cp2bmUyB5OPmhCQOpJu5mcEKULaLsT83jII9IMiz/IwEceUN?= =?us-ascii?Q?QtG0fE8peTvMuhiUQfDPOKLa/jw6ige0SZ6fYGJtc1Ff5kbtm/QbsSld4ATa?= =?us-ascii?Q?LwjzJ82l0s8w9Is++1wnCbt0j7x0+4TPbyh0DDyVHqfnKqubk+Sqxa47nW+B?= =?us-ascii?Q?U3VPOdt5iPc4pCOIWbw6zavlGrK7nnhDM856xLlIuX0LXXoAFfLr4LXgVjfs?= =?us-ascii?Q?YSPDHDGQ219tUkYpDnJX+ioMGt9gTt4/I26vCRJnjcLqp/iq43B/3n+pGw42?= =?us-ascii?Q?NGtY7JR1C0JHQXaKcUpBdWRvM8P4pPkMfqOl2rYrVpDKqqzDbpdxEjxaF99Z?= =?us-ascii?Q?ZHqFQY62iXxXmHCmtWx7qdKTJ4J40Dm79aeWynceOS7JdjWMgdNs1xu0XH75?= =?us-ascii?Q?HO0xZiJDOKPF5gbOxDqYKI4a2o9LYhvm26h4gKm70Um5Y9McIXV8GUVG2sRX?= =?us-ascii?Q?tV6V5k1xGGWmfqchkGb0iiuJ+S0Pm8Xcaqvi/oJVWC4d8vHOVeLoQ/KMXy59?= =?us-ascii?Q?dK/3PdaHifvhmPxL5037iDwBJXOr/F0CWdaH5j8pC/eOjXUSMtE7p7rtc0ky?= =?us-ascii?Q?Llltm3Moo4lASZqniZXHtS4hYWohlopM9nYFVeKg85HBnpwdNHaWVnQPIRUt?= =?us-ascii?Q?xbXyYA00ZLg++Tmc7ez0kKQp15MB1Oy6fPhmW4RXjBHL0ZSTY4gCoQdCMNih?= =?us-ascii?Q?97m7ec4MjhV6o+lGTGMxTkL50qDl44j/VQvOwEkn/10iXIaP5e6bn4+rNYMs?= =?us-ascii?Q?h/K+k9SWyw=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00d96e22-c0d1-482d-1d9f-08deaf383000 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:34:59.3418 (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: Zf2qlcp2EvdPsXenFFFeQvSOoPuEpQDIrkrKzAYeJQBVpJziOuWH40KtJMRiRZRIYzsh0cj9yyyFZssh5zPt0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" Replace the manual do-while polling loop in enetc_msg_vsi_send() with the standard read_poll_timeout() helper to simplify the code. Signed-off-by: Wei Fang --- .../net/ethernet/freescale/enetc/enetc_vf.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_vf.c b/drivers/net/= ethernet/freescale/enetc/enetc_vf.c index df8e95cc47d0..669eb939e33c 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_vf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_vf.c @@ -28,8 +28,8 @@ static void enetc_msg_dma_free(struct device *dev, struct= enetc_msg_swbd *msg) static int enetc_msg_vsi_send(struct enetc_si *si, struct enetc_msg_swbd *= msg) { struct device *dev =3D &si->pdev->dev; - int timeout =3D 100; u32 vsimsgsr; + int err; =20 /* The VSI mailbox may be busy if last message was not yet processed * by PSI. So need to check the mailbox status before sending. @@ -48,19 +48,13 @@ static int enetc_msg_vsi_send(struct enetc_si *si, stru= ct enetc_msg_swbd *msg) enetc_msg_dma_free(dev, &si->msg); si->msg =3D *msg; enetc_msg_vsi_write_msg(&si->hw, msg); - - do { - vsimsgsr =3D enetc_rd(&si->hw, ENETC_VSIMSGSR); - if (!(vsimsgsr & ENETC_VSIMSGSR_MB)) - break; - - usleep_range(1000, 2000); - } while (--timeout); - - if (!timeout) { + err =3D read_poll_timeout(enetc_rd, vsimsgsr, + !(vsimsgsr & ENETC_VSIMSGSR_MB), + 1000, 200000, false, &si->hw, ENETC_VSIMSGSR); + if (err) { dev_err(dev, "VSI mailbox timeout\n"); =20 - return -ETIMEDOUT; + return err; } =20 /* check for message delivery error */ --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011065.outbound.protection.outlook.com [52.101.70.65]) (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 C83BC3BAD82; Mon, 11 May 2026 08:35:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488533; cv=fail; b=WyPrkHMIRdR3HHSzZ2dmgQLee88Gb/HWrp+LNnTeXY9CnACczrZUVrnKJUEMPBrfqvI4Owza4t9zyBER1zxOVDXhSmhKRFHq5fTRa3jw4+mgWeCldHQ3gGc4/g33amXbNTL2GoClPC9cBoHUu+fyRuVzs9tjmqb6DNmEL+4tONo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488533; c=relaxed/simple; bh=r2XCngxy/gskydovF1r5EnWnxtAEvW9FjdrRvih9pbk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=VHG9kGuXa/AwCeSp6jM+MU9s0pC4rQOewwdhlWcvVUk7BGZ7vlCL17sqYiSCCOxL5taufAzjlR1WBJdrOHvdjNKTmikcWWTTy3/Q55Xkqb9SQ9WwTXlMSiS7evvUXqoqrecgcYV7cNAU+graWeB4TVq3VbtkbD85z6bQMFb7VWg= 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=EWU+PWaG; arc=fail smtp.client-ip=52.101.70.65 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="EWU+PWaG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MJ6hVYaGjk9XIsNw/XzGl935hOut5ObQ2vhSQInalPFXWOQFsUmFu2BPftvimBZ+21+nqUvw+4hu7cmJu2zvgDUQpsD35k1hAXoLnExdYWvK/I/bQukn53ca+0NqEGIyAS5HnDG5PlDcWASo+bSYeLrFLi6quhWXDHWR8AXB4rK8raU6xHLYZ2o28i/T9cDLfs8AYQuPaZ6Lct1fdNi3O2Xw336rlIpKbACRc5GB2CPDvIh8LiIOrRSkpQ5BpcuOrONh05qfrKMY2rfhNaGNq3jXrWsA9fvDiB9dkygxVeolLzQrt9kLWYSMxCDVqJ0fb5WbYoMYHXyfgdUMPVmrww== 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=nFW1eeLoahigi1Vav0HJx/Q1eOQ5YCecRl7367IMKRc=; b=gRscrHoOz7QyVmPCaNH2IfeUyCQwsn7JNQWgstzm8LQOjGCp9iYB74OkEsrH/+hJ8/fc5vEQlxXKc+2VTZQ5M+ofa6adQJsqkVvsEEs77tQ11ePZjqAWBDHxj0O/R28C+lYEXaFGD/mgXfgv7OGklZTKhLzZKailKli5O1IcQGK4YDo6KmcTR7fWRgsldGXw9P7Mb6dznYah6haPEZMBDJ/9gGum1x9PqidUHU4ILBLyPfwwkw8nUryhV//awBulVoN+NV+c3pJin/sKgcQHoLPh4bnK+VwcpO34A2qMN7MsyUvHmOm56EOG1htJuVTnA58eAZnnJdMg/6o5b9Ehsg== 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=nFW1eeLoahigi1Vav0HJx/Q1eOQ5YCecRl7367IMKRc=; b=EWU+PWaGpaFcqDXwDCHl2gv4U5mcI5ak+7mR4RRvHOnyNT2gcJphAp9eq6KacIRa0++P8HiFaHyUqkJNhW6G7uz0kYsIJfC5CHgy9i67ElXTXB9T/buwECTrRy/H/5kl7nQs/W+2QEoyjwz8+wHE7XMX5AAzbVq2Z0mSE6C7KjtGVqB5BbVKboCI3SXrPQY6fakQdvO78F/rBJkicxy4VUnElV16UJYu21QtNT52755g6cGG4rrl8Jp/NuhcxORsTcVgrZ0MW54O+WemW/889c8+YnKmaftPXDhd+ENiUQ3+XOYsnc4ad2o8OMntCDjNDcjLh4rcMzadmC1fx0lZvQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:35:02 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:35:02 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 07/15] net: enetc: convert mailbox messages to new formats Date: Mon, 11 May 2026 16:07:57 +0800 Message-Id: <20260511080805.2052495-8-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: e4f2ff18-ba23-40bc-2e29-08deaf383204 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|3023799003|56012099003|21046099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: +QMTGhz6LXpNSF3rmn007YyQFy5iPRHmlmgQOifLbCElb3x7TRSVP3CRc4/ukBkFjpaTsWZv0FdRCaknkx1Eh+A2ufLl2fyPp0UIoXztMI/2reYhuufY9CqzH2b8AOWr6yPUqD78owRTFXBxodbZ9PooCZKURbrFCHH0vfmnMqwVyv3N5OURQ2okuoweyUnMgy13A6AxSTlwpU85ZVZN1ovbsoAmTPZqtTjq9THZYGqulKptc5Qz3Ou8dsvGK1PToCDikLmNcVUN05p6ITuHskXO2xduj31N5fEqRKL/ZznyftbkLne+aPzpF8YuqtluFarBtBXauJvAoLWMJu+Zulvueyj6M7n6LsZJtaPi8ZrMTX3lAWADthQlZUCEHs6nzocLL3braApo+SY4Ry9RTEDQ0R1zLPaKTTbqhYQP3tL9XFj84mBAkAkOQaJ05FNXM40Wl3wMwPxDt58+0qO1Tg8DPA1Yi3fwQiqT3ohCK8u4VXRMj/tP4J0GnO/OfH0oP7++a8RVSd7mtucow9PR+Z5RYjWzL5P4e5TZKCES82At1sZaO1mo/AxDeB4hvKIdTE1enIVoF6OvYVaOeoZGEj80l05jN79gfoB1VxiC1HSuf1OAfz8+vHfo16/KuhfUPZhiS+JR8yQfxg9bp2eU7ygxcrmToKddag9+vJKuTPGANzY1LPw4DAGcwtpr0KKfyE2RV5+hWwg3mO6f/hvgRmWdbxzVPtdJV1WwPHluTG7BhoAAs25YfsJ45puksrl2 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(3023799003)(56012099003)(21046099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j9clMqp6YgAUKt7haXR7RoL20FCFQ6LvVrmgy+CpMI7oMC078QqqEJc2vTvt?= =?us-ascii?Q?t95BxBJgWGOeucRhjt4L4Qk2Vk+wAnGlK9GCNXMjNky1jHb8vnsIAmBZExUD?= =?us-ascii?Q?ug/BCSJz4+ByDDkgZ+yPpHZ6s+/PlRnz1YyU93CSKxXWca6/Tl++VPYHzAiP?= =?us-ascii?Q?DZiv4RXgzB5XYbPM6em9I8pUhAXlKrFuo3kKnu17oNkKViLPCcK7L0WkdYk9?= =?us-ascii?Q?1Yj2MZYc7n+KhKxyL/ACXAsyjIxGSFw6J2S+STwwpXuWg83893XAdl5yPkZe?= =?us-ascii?Q?Q4l9Sejkm+bD0HncNQtWRjUCzsFGc/C3BHQ0JCPTi/JadiFDHFkY94eZ4BaC?= =?us-ascii?Q?w/gU88yNJIvWQvYv/egocdfMV854gfWLlbeRXy6M2u9LcLYXaxsB4at/hOKh?= =?us-ascii?Q?JnIxF2Jk2Vr4K8Wh3QOaepRmt71uHhqHsu8//B0iGaEVM+wY7lIqxs7Ll8Vd?= =?us-ascii?Q?5gWPgN534+73k9AFo2ht6enFLxqcAF9sysn6WFINaswDqn13Mq4VYMUAfZLW?= =?us-ascii?Q?GxUe0zCR+pYMM5UgkYVh/Wy8NmXQes0tOa+HDZQ1drVjjBwapSCCQoQdud44?= =?us-ascii?Q?9D9ZOL0cFQr7JUM61PVyCgxZQ9ZgXtstckDUxThAEtlAhlMdc5reT95nhk4Y?= =?us-ascii?Q?11dK971U4Hk6tnTy13fN9V3inpZdi7ieUa0IOGEPZsasw3gUeH2dCB3BrPAk?= =?us-ascii?Q?V50QEt6rs8gg4+BoxY+Y4YeA18AllqZnIVFeeWKi8Jb9B/JQubl3TerA85Pg?= =?us-ascii?Q?UgIvMmNpccDH1X08uxyy7FdaiPMhAwjqUL0dgsaXPMp9lMeXDvKWDTo5wSeF?= =?us-ascii?Q?cXcGMnWBKYnQWblnF0a3f4hFCWBCM+6z87IprZ8adoVaGVzp8ITbbsSX+IDq?= =?us-ascii?Q?Y5n/udmUYYLNs20VWCzME4GMEgTaJcux8muQOIE2rYqdqUfV0MB03CUg7YBM?= =?us-ascii?Q?ly0BGho/kee4edEX6/SKLUGin+Q69NIPpVDhXC4z+6b8P4462H+er4p9E2yA?= =?us-ascii?Q?0P2Q8ZPIbpIMRKzLPhgX3rcm1vJRYtkAXfLmVGhccWPnZAEWAI6LCF7Rc2SC?= =?us-ascii?Q?s3twvVGjSH2xaik/c2TSUPLex7OS/k35HVOgMOOyp0kY/pNE4RnGsw4khbk2?= =?us-ascii?Q?2O/h7DR3bFz7Dl77TsiOsvdRC89ZAb+le6ZixGXMI6mHdswUshTON6HjA9/w?= =?us-ascii?Q?4ClzV7g8LjhMvxgsQML83x6s+3M3/rVk8Tndn68wRrKmYmaWjdA92tmTtOVP?= =?us-ascii?Q?pedKOZ0VY84bBj1JH/urjLM2AItKC6fqFOorbPQ3ArKK7weO4QlWb+i2b2q7?= =?us-ascii?Q?E4BSZTs/3luWyqYrwhh5i1VLfnb1Mit5GLaAlOolwkx8s4HC1zh1cl8kW6vZ?= =?us-ascii?Q?UresussUjr/n9rqx0c9JJlHwfLJbXBBwR//X+w5ntIpgvRI8aOAaqba0i7Dh?= =?us-ascii?Q?jGPYPOkiy7gZ8PuKElTtQKbf+4drvYxHXqpzygWuqBYLML+c7nGseAIaWuHZ?= =?us-ascii?Q?39dKBK3kp0gLRsdMlWDIgHNyBwEVJ6WYcAFXHzuts8cd1ehkXU57TvX3XKr4?= =?us-ascii?Q?zcuanlITr5MEFPXKoK47PhROZptm33fdb45BrV9zbJpGsyY8pb2H7KoKzX8N?= =?us-ascii?Q?0zhVndtAK8MJeUTxTa2yiXcvzJvC0YmPKJc0CYTQ4Snsq9Q8l7B+pNNHb2Dr?= =?us-ascii?Q?AVuPlHAg0ty4yml4tpOh/gUDYm0ASflLHgHxdFW0/74Od57iROlqs62GnE/5?= =?us-ascii?Q?TmADLjEgRA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e4f2ff18-ba23-40bc-2e29-08deaf383204 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:35:02.7985 (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: IM8JQ4uGJxAfA8vOM2iHW8heMq2+Ku111OiUR8XExtwgESgX25YZGKpqnCx57bwPxbYAXr5Aimj8sU+6SLTM1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" On the LS1028A platform, the PF-VF mailbox was only used to update the VF's MAC address. The original message format is minimal, lacks a clear structure, and provides no means for the receiver to validate message integrity, making it difficult to extend for new features. With the introduction of i.MX ENETC v4, the interaction between PF and VF has become significantly more complex. Typical deployments now include scenarios where the PF is controlled by an M core while the VF is driven by either the Linux kernel or DPDK, or where the PF is controlled by the Linux kernel while the VF is controlled by DPDK. These heterogeneous driver combinations require a unified and extensible message format to ensure compatibility across different operating environments. This patch introduces a newly defined PF-VF message structure and converts the existing MAC-update mechanism to use the new format. The redesigned message layout provides: - extensibility to support future PF-VF features on ENETC v4, - consistent framing for all message types, - improved data integrity checking, - a common protocol usable across Linux, M core firmware, and DPDK. Additional PF-VF message types will be added in subsequent patches. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/Kconfig | 2 + drivers/net/ethernet/freescale/enetc/enetc.h | 15 +- .../net/ethernet/freescale/enetc/enetc4_pf.c | 4 - .../ethernet/freescale/enetc/enetc_mailbox.h | 153 ++++++++++++++++++ .../net/ethernet/freescale/enetc/enetc_msg.c | 107 +++++++++--- .../net/ethernet/freescale/enetc/enetc_vf.c | 88 +++++++--- 6 files changed, 306 insertions(+), 63 deletions(-) create mode 100644 drivers/net/ethernet/freescale/enetc/enetc_mailbox.h diff --git a/drivers/net/ethernet/freescale/enetc/Kconfig b/drivers/net/eth= ernet/freescale/enetc/Kconfig index 117038104b69..0e338b33bc85 100644 --- a/drivers/net/ethernet/freescale/enetc/Kconfig +++ b/drivers/net/ethernet/freescale/enetc/Kconfig @@ -37,6 +37,7 @@ config FSL_ENETC select PHYLINK select PCS_LYNX select DIMLIB + select CRC_ITU_T help This driver supports NXP ENETC gigabit ethernet controller PCIe physical function (PF) devices, managing ENETC Ports at a privileged @@ -70,6 +71,7 @@ config FSL_ENETC_VF select FSL_ENETC_MDIO select PHYLINK select DIMLIB + select CRC_ITU_T help This driver supports NXP ENETC gigabit ethernet controller PCIe virtual function (VF) devices enabled by the ENETC PF driver. diff --git a/drivers/net/ethernet/freescale/enetc/enetc.h b/drivers/net/eth= ernet/freescale/enetc/enetc.h index e691144e8756..b70b625328ea 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.h +++ b/drivers/net/ethernet/freescale/enetc/enetc.h @@ -16,6 +16,7 @@ =20 #include "enetc_hw.h" #include "enetc4_hw.h" +#include "enetc_mailbox.h" =20 #define ENETC_MAC_MAXFRM_SIZE 9600 #define ENETC_MAX_MTU (ENETC_MAC_MAXFRM_SIZE - \ @@ -257,12 +258,6 @@ static inline union enetc_rx_bd *enetc_rxbd_ext(union = enetc_rx_bd *rxbd) return ++rxbd; } =20 -struct enetc_msg_swbd { - void *vaddr; - dma_addr_t dma; - int size; -}; - #define ENETC_REV1 0x1 #define ENETC_REV4 0x4 =20 @@ -490,14 +485,6 @@ struct enetc_ndev_priv { u64 sysclk_freq; /* NETC system clock frequency */ }; =20 -/* Messaging */ - -/* VF-PF set primary MAC address message format */ -struct enetc_msg_cmd_set_primary_mac { - struct enetc_msg_cmd_header header; - struct sockaddr mac; -}; - #define ENETC_CBD(R, i) (&(((struct enetc_cbd *)((R).bd_base))[i])) =20 #define ENETC_CBDR_TIMEOUT 1000 /* usecs */ diff --git a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c b/drivers/net= /ethernet/freescale/enetc/enetc4_pf.c index 56899f2254aa..4e771f852358 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c @@ -17,10 +17,6 @@ #define ENETC_MAC_FILTER_TYPE_ALL (ENETC_MAC_FILTER_TYPE_UC | \ ENETC_MAC_FILTER_TYPE_MC) =20 -struct enetc_mac_addr { - u8 addr[ETH_ALEN]; -}; - static void enetc4_get_port_caps(struct enetc_pf *pf) { struct enetc_hw *hw =3D &pf->si->hw; diff --git a/drivers/net/ethernet/freescale/enetc/enetc_mailbox.h b/drivers= /net/ethernet/freescale/enetc/enetc_mailbox.h new file mode 100644 index 000000000000..260c7333d93a --- /dev/null +++ b/drivers/net/ethernet/freescale/enetc/enetc_mailbox.h @@ -0,0 +1,153 @@ +/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ +/* + * Copyright 2025-2026 NXP + * + * The VSI-to-PSI message generic format: + * + * OFFSET 0 16 24 31 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 0x0 | CRC16 (big-endian) | CLASS ID | CMD ID | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 0x4 | PROTO VER | LEN | RESV | COOKIE| RESV | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 0x8 | RESV | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 0xc | RESV | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 0x10 | | + * 0x14 | | + * 0x18 | Message Body | + * 0x1c | | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * 0x20 | | + * ~ | Extended Message Body: LEN x 32B | + * 0x3e0 | | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * + * Field Descriptions: + * CRC16 (16-bit): Big endian, CRC16 CCITT-FALSE algorithm, It provides the + * equivalent data integrity check functionality as the FCS for standard + * Ethernet frames. + * + * CLASS ID (8-bit) and CMD ID (8-bit): These are 8-bit fields identifying + * the command class and the class-specific operations supported. For more + * details, please refer to the definitions of the relevant class ID and + * cmd ID in this document. + * + * PROTO VER (8-bit): Supported VSI-PSI command protocol version. Currently + * only support version 0. To be incremented for future protocol extension= s. + * + * LEN (8-bit): Extended message body length in increments of 32B. The upp= er + * limit is given by the physical implementation of the NETC VSI-PSI Messa= ging + * mechanism that supports message sizes of up to 1024B (including headers= ), + * that are multiple of 32B. + * + * COOKIE (4-bit): Optional parameter, which, if not 0, indicates that the + * command should be execute asynchronously on PSI side. If COOKIE is not 0 + * and the command cannot be executed instantly on the PSI side (it would + * take longer time to complete), the PSI may enqueue the request in a com= mand + * queue of up to 15 entries per VSI and, later after command execution, t= he + * PSI returns the COOKIE to VSI as part of an asynchronous notification + * message that indicates the command completion status. If COOKIE is 0 th= en + * the command is considered as blocking, the PSI will wait for the execut= ion + * of the command to complete before updating the PSIMSGRR[MC] field with = the + * corresponding return code. + * + * The PSI-to-VSI message generic format: + * 0 4 8 12 15 + * +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + * | COOKIE | CLASS CODE | CLASS ID | + * +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ + * + * The PSI to VSI message format is mapped to the following PSI message + * registers/fields, depending on use case: + * 1) PSI_RX_control: PSIMSGRR[MC] - for VSI command return code messages + * (blocking requests), and + * 2) PSI_TX_control: PSIMSGSR[MC] - for PSI to VSI notification messages + * (async mode) + */ + +#ifndef __ENETC_MAILBOX_H +#define __ENETC_MAILBOX_H + +#include + +#define ENETC_CRC_INIT 0xffff +#define ENETC_MSG_ALIGN 32 +/* s indicates the size of the message */ +#define ENETC_MSG_EXT_BODY_LEN(s) ((s) / ENETC_MSG_ALIGN - 1) +/* l indicates the extended body len (LEN field) of the message */ +#define ENETC_MSG_SIZE(l) (((l) + 1) * ENETC_MSG_ALIGN) + +enum enetc_msg_class_id { + /* Class ID for PSI-to-VSI messages */ + ENETC_MSG_CLASS_ID_CMD_SUCCESS =3D 1, + ENETC_MSG_CLASS_ID_PERMISSION_DENY, + ENETC_MSG_CLASS_ID_CMD_NOT_SUPPORT, + ENETC_MSG_CLASS_ID_PSI_BUSY, + ENETC_MSG_CLASS_ID_CRC_ERROR, + ENETC_MSG_CLASS_ID_PROTO_NOT_SUPPORT, + ENETC_MSG_CLASS_ID_INVALID_MSG_LEN, + ENETC_MSG_CLASS_ID_CMD_TIMEOUT, + ENETC_MSG_CLASS_ID_CMD_DEFERRED =3D 0xf, + + /* Common Class ID for PSI-to-VSI and VSI-to-PSI messages */ + ENETC_MSG_CLASS_ID_MAC_FILTER =3D 0x20, +}; + +enum enetc_msg_mac_filter_cmd_id { + ENETC_MSG_SET_PRIMARY_MAC, +}; + +/* Class-specific error return codes of MAC filter */ +enum enetc_mac_filter_class_code { + ENETC_MF_CLASS_CODE_INVALID_MAC, +}; + +struct enetc_msg_swbd { + void *vaddr; + dma_addr_t dma; + int size; +}; + +/* The PSI-tO-VSI message format, only a 16-bits code */ +union enetc_pf_msg { + struct { + u8 cookie:4; + u8 class_code:4; + u8 class_id; + }; + u16 code; +}; + +/* The generic VSI-to-PSI message header */ +struct enetc_msg_header { + __be16 crc16; + u8 class_id; + u8 cmd_id; + u8 proto_ver; + u8 len; + u8 resv0; + u8 cookie:4; + u8 resv1:4; + u8 resv2[8]; +}; + +struct enetc_mac_addr { + u8 addr[ETH_ALEN]; /* Network byte order */ +}; + +/* Message format of class_id 0x20 for exact MAC filter. + * cmd_id 0x0: set primary MAC + * cmd_id 0x1: Add entries to MAC address filter table + * cmd_id 0x2: Delete entries from MAC address filter table + * Note that cmd_id 0x1 and 0x2 are not supported yet. + */ +struct enetc_msg_mac_exact_filter { + struct enetc_msg_header hdr; + u8 mac_cnt; /* No need to set for cmd_id 0 */ + u8 resv[3]; + struct enetc_mac_addr mac[]; +}; + +#endif diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net= /ethernet/freescale/enetc/enetc_msg.c index a137fa1e6f20..1384752efa7b 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -29,49 +29,104 @@ static irqreturn_t enetc_msg_psi_msix(int irq, void *d= ata) } =20 /* Messaging */ -static u16 enetc_msg_pf_set_vf_primary_mac_addr(struct enetc_pf *pf, - int vf_id) +static void enetc_msg_set_vf_primary_mac_addr(struct enetc_pf *pf, int vf_= id, + union enetc_pf_msg *pf_msg) { struct enetc_vf_state *vf_state =3D &pf->vf_state[vf_id]; - struct enetc_msg_swbd *msg =3D &pf->rxmsg[vf_id]; - struct enetc_msg_cmd_set_primary_mac *cmd; + struct enetc_msg_swbd *msg_swbd =3D &pf->rxmsg[vf_id]; struct device *dev =3D &pf->si->pdev->dev; - u16 cmd_id; + struct enetc_msg_mac_exact_filter *msg; char *addr; =20 - cmd =3D (struct enetc_msg_cmd_set_primary_mac *)msg->vaddr; - cmd_id =3D cmd->header.id; - if (cmd_id !=3D ENETC_MSG_CMD_MNG_ADD) - return ENETC_MSG_CMD_STATUS_FAIL; + msg =3D (struct enetc_msg_mac_exact_filter *)msg_swbd->vaddr; + addr =3D msg->mac[0].addr; + if (!is_valid_ether_addr(addr)) { + dev_err(dev, "Invalid MAC address from VSI message\n"); + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_MAC_FILTER; + pf_msg->class_code =3D ENETC_MF_CLASS_CODE_INVALID_MAC; + + return; + } =20 - addr =3D cmd->mac.sa_data; if (vf_state->flags & ENETC_VF_FLAG_PF_SET_MAC) dev_warn(dev, "Attempt to override PF set mac addr for VF%d\n", vf_id); else pf->ops->set_si_primary_mac(&pf->si->hw, vf_id + 1, addr); =20 - return ENETC_MSG_CMD_STATUS_OK; + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_CMD_SUCCESS; +} + +static bool enetc_msg_check_crc16(void *msg_addr, u32 msg_size) +{ + u32 data_size =3D msg_size - 2; + u8 *data_buf =3D msg_addr + 2; + u16 verify_val; + + if (msg_size > ENETC_DEFAULT_MSG_SIZE) + return false; + + verify_val =3D crc_itu_t(ENETC_CRC_INIT, data_buf, data_size); + verify_val =3D crc_itu_t(verify_val, msg_addr, 2); + if (verify_val) + return false; + + return true; +} + +static void enetc_msg_handle_mac_filter(struct enetc_msg_header *msg_hdr, + struct enetc_pf *pf, int vf_id, + union enetc_pf_msg *pf_msg) +{ + switch (msg_hdr->cmd_id) { + case ENETC_MSG_SET_PRIMARY_MAC: + enetc_msg_set_vf_primary_mac_addr(pf, vf_id, pf_msg); + break; + default: + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_CMD_NOT_SUPPORT; + } } =20 -static void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf_id, u16 *st= atus) +static void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf_id, + union enetc_pf_msg *pf_msg) { - struct enetc_msg_swbd *msg =3D &pf->rxmsg[vf_id]; + struct enetc_msg_swbd *msg_swbd =3D &pf->rxmsg[vf_id]; struct device *dev =3D &pf->si->pdev->dev; - struct enetc_msg_cmd_header *cmd_hdr; - u16 cmd_type; + struct enetc_msg_header *msg_hdr; + u32 msg_size; + + msg_hdr =3D (struct enetc_msg_header *)msg_swbd->vaddr; + msg_size =3D ENETC_MSG_SIZE(msg_hdr->len); + if (!enetc_msg_check_crc16(msg_swbd->vaddr, msg_size)) { + dev_err(dev, "VSI to PSI Message CRC16 error\n"); + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_CRC_ERROR; + + return; + } =20 - *status =3D ENETC_MSG_CMD_STATUS_OK; - cmd_hdr =3D (struct enetc_msg_cmd_header *)msg->vaddr; - cmd_type =3D cmd_hdr->type; + /* Currently, asynchronous actions are not supported */ + if (msg_hdr->cookie) { + dev_err(dev, "Cookie field is not supported yet\n"); + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_CMD_NOT_SUPPORT; + + return; + } + + /* Currently only support protocol version 0 */ + if (msg_hdr->proto_ver) { + dev_err(dev, "Protocol version %u is not supported yet\n", + msg_hdr->proto_ver); + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_PROTO_NOT_SUPPORT; + + return; + } =20 - switch (cmd_type) { - case ENETC_MSG_CMD_MNG_MAC: - *status =3D enetc_msg_pf_set_vf_primary_mac_addr(pf, vf_id); + switch (msg_hdr->class_id) { + case ENETC_MSG_CLASS_ID_MAC_FILTER: + enetc_msg_handle_mac_filter(msg_hdr, pf, vf_id, pf_msg); break; default: - dev_err(dev, "command not supported (cmd_type: 0x%x)\n", - cmd_type); + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_CMD_NOT_SUPPORT; } } =20 @@ -92,15 +147,15 @@ static void enetc_msg_task(struct work_struct *work) } =20 for (i =3D 0; i < pf->num_vfs; i++) { + union enetc_pf_msg pf_msg =3D {}; u32 psimsgrr; - u16 msg_code; =20 if (!(ENETC_PSIMSGRR_MR(i) & mr_mask)) continue; =20 - enetc_msg_handle_rxmsg(pf, i, &msg_code); + enetc_msg_handle_rxmsg(pf, i, &pf_msg); =20 - psimsgrr =3D ENETC_SIMSGSR_SET_MC(msg_code); + psimsgrr =3D ENETC_SIMSGSR_SET_MC(pf_msg.code); psimsgrr |=3D ENETC_PSIMSGRR_MR(i); /* w1c */ enetc_wr(hw, ENETC_PSIMSGRR, psimsgrr); } diff --git a/drivers/net/ethernet/freescale/enetc/enetc_vf.c b/drivers/net/= ethernet/freescale/enetc/enetc_vf.c index 669eb939e33c..31ca08e679b8 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_vf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_vf.c @@ -6,7 +6,29 @@ =20 #define ENETC_DRV_NAME_STR "ENETC VF driver" =20 -/* Messaging */ +/* Note: This function should be called after filling the message body, + * because the CRC16 needs to be calculated after all the data has been + * filled. + */ +static void enetc_msg_fill_common_hdr(struct enetc_msg_swbd *msg_swbd, + u8 class_id, u8 cmd_id, u8 proto_ver, + u8 cookie) +{ + struct enetc_msg_header *hdr =3D msg_swbd->vaddr; + u8 *data_buf =3D ((u8 *)msg_swbd->vaddr) + 2; /* skip crc16 field */ + u32 data_size =3D msg_swbd->size - 2; + u16 crc16; + + hdr->class_id =3D class_id; + hdr->cmd_id =3D cmd_id; + hdr->len =3D ENETC_MSG_EXT_BODY_LEN(msg_swbd->size); + hdr->proto_ver =3D proto_ver; + hdr->cookie =3D cookie; + + crc16 =3D crc_itu_t(ENETC_CRC_INIT, data_buf, data_size); + hdr->crc16 =3D htons(crc16); +} + static void enetc_msg_vsi_write_msg(struct enetc_hw *hw, struct enetc_msg_swbd *msg) { @@ -28,6 +50,7 @@ static void enetc_msg_dma_free(struct device *dev, struct= enetc_msg_swbd *msg) static int enetc_msg_vsi_send(struct enetc_si *si, struct enetc_msg_swbd *= msg) { struct device *dev =3D &si->pdev->dev; + union enetc_pf_msg pf_msg; u32 vsimsgsr; int err; =20 @@ -59,36 +82,63 @@ static int enetc_msg_vsi_send(struct enetc_si *si, stru= ct enetc_msg_swbd *msg) =20 /* check for message delivery error */ if (vsimsgsr & ENETC_VSIMSGSR_MS) { - dev_err(dev, "VSI command execute error: %d\n", - ENETC_SIMSGSR_GET_MC(vsimsgsr)); + dev_err(dev, "Transfer error when copying the data\n"); return -EIO; } =20 - return 0; + pf_msg.code =3D ENETC_SIMSGSR_GET_MC(vsimsgsr); + /* Check the user-defined completion status. */ + if (pf_msg.class_id !=3D ENETC_MSG_CLASS_ID_CMD_SUCCESS) { + switch (pf_msg.class_id) { + case ENETC_MSG_CLASS_ID_PERMISSION_DENY: + return -EACCES; + case ENETC_MSG_CLASS_ID_CMD_NOT_SUPPORT: + case ENETC_MSG_CLASS_ID_PROTO_NOT_SUPPORT: + err =3D -EOPNOTSUPP; + break; + case ENETC_MSG_CLASS_ID_PSI_BUSY: + err =3D -EBUSY; + break; + case ENETC_MSG_CLASS_ID_CMD_TIMEOUT: + err =3D -ETIME; + break; + case ENETC_MSG_CLASS_ID_INVALID_MSG_LEN: + case ENETC_MSG_CLASS_ID_MAC_FILTER: + err =3D -EINVAL; + break; + default: + err =3D -EIO; + } + } + + if (err) + dev_err(dev, "Return error code from PSI: 0x%04x\n", + pf_msg.code); + + return err; } =20 static int enetc_msg_vsi_set_primary_mac_addr(struct enetc_ndev_priv *priv, struct sockaddr *saddr) { - struct enetc_msg_cmd_set_primary_mac *cmd; - struct enetc_msg_swbd msg; - - msg.size =3D ALIGN(sizeof(struct enetc_msg_cmd_set_primary_mac), 64); - msg.vaddr =3D dma_alloc_coherent(priv->dev, msg.size, &msg.dma, - GFP_KERNEL); - if (!msg.vaddr) { - dev_err(priv->dev, "Failed to alloc Tx msg (size: %d)\n", - msg.size); + struct enetc_msg_mac_exact_filter *msg; + struct enetc_msg_swbd msg_swbd; + u32 msg_size; + + msg_size =3D struct_size(msg, mac, 1); + msg_swbd.size =3D ALIGN(msg_size, ENETC_MSG_ALIGN); + msg_swbd.vaddr =3D dma_alloc_coherent(priv->dev, msg_swbd.size, + &msg_swbd.dma, GFP_KERNEL); + if (!msg_swbd.vaddr) return -ENOMEM; - } =20 - cmd =3D (struct enetc_msg_cmd_set_primary_mac *)msg.vaddr; - cmd->header.type =3D ENETC_MSG_CMD_MNG_MAC; - cmd->header.id =3D ENETC_MSG_CMD_MNG_ADD; - memcpy(&cmd->mac, saddr, sizeof(struct sockaddr)); + msg =3D (struct enetc_msg_mac_exact_filter *)msg_swbd.vaddr; + memcpy(&msg->mac[0].addr, saddr->sa_data, ETH_ALEN); + enetc_msg_fill_common_hdr(&msg_swbd, ENETC_MSG_CLASS_ID_MAC_FILTER, + ENETC_MSG_SET_PRIMARY_MAC, 0, 0); =20 /* send the command and wait */ - return enetc_msg_vsi_send(priv->si, &msg); + return enetc_msg_vsi_send(priv->si, &msg_swbd); } =20 static int enetc_vf_set_mac_addr(struct net_device *ndev, void *addr) --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011065.outbound.protection.outlook.com [52.101.70.65]) (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 E304A3BAD91; Mon, 11 May 2026 08:35:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488544; cv=fail; b=OkGESLLsp0xJ2j1AleZrK8Om+JrXu+2wybb8edz/g8q31P2LG7GSq3T2bAeuzN/HDDayy44AllVT0Jo+4PVTrSdBJ3HP//1Nd5KdQG00EjLkICqvMpN7+pewKHUtIsclPPnt6zqYhW0YCogL7a2vrUj7Qc97BaMnZQH29uDIoJc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488544; c=relaxed/simple; bh=Zd2M7o1+YhL/w+aoSisedbSdsWgIpqf5q9BIcBjaGec=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=FZA+eU0NCRFSFmz/3ByxaEPzi6Za8AWqRH5YZu15vfQZlaeMfbuBu7065uSEp69aRCRLS1hcUADE5G1cX+tV/VF8U5QwaLZvDxDn9F0CZGjl9dXOfo4qIxV6sw3YhgBbitji6Sj8pkvSaEDYFkQyi4fb6fvTm/xHFgcuCLmTuDk= 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=WUiK0PCL; arc=fail smtp.client-ip=52.101.70.65 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="WUiK0PCL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cKVl1bLQ5yPehyNuy3jKj2ftDWX1UKXcQ8GD6DkhOchurI9gfWTdImGgRHmzfYzU/izc308UPylnvFUUaCXtJCfzsqrTsTwor+MEAnXT9Pz5Qc7FDZ66ts6TJI0YYtLx6Hv9xc+SWNBEoYyzPPAse9AHlCLUWhM82p3alK8AYuoTKhK43/iOBJZetqdYxY97C5shChHgTBjrT2yZ+dhcP+MnvBhHf6TXSo2iQfuAAzXdTjm7XST298wKuwUIv/hRx5nOM/4/xy2DkXxqj8nOIJXRlB4kOEkuIS2NBoU9s2bpNCNUC69wNcqhUWc/3FgAfzlCqVK2rfimn/O0stvx2g== 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=qEgnk9xKoIDHaddYFYnHoUGUyrfu2g7kOQ8mkMaKhr0=; b=wruFCPk8qdJn69sLFC6Jg4GmaZwmA1pQxHp3x1xDzcHW7Pzg/SzhR8fu0P2wscEEedZ7Sfl91b0r2tdshXbwf0073JWW/1B5fL/v93hqsTXOpnj/ovduNOyQGnNxfLuOraU687lGxTFy4v8L63ZSaPVKARAd9WeIhYMMr5RTFgDC3U9ctMGc/bjtPR9dGq/2EMVThKkFzvFD413mPfcgXSOYaP/+Hv3crAyFYbdO9yBhI0TnDynRSVXzOGYMXIbSqpJCiPoFTPhgmXPgnM6cqeb0u8mA+XFrS06KnJYHZfUfrO1b9UfxTvtbOvGfmwlJk7GlMBJ28g4GKrlMUlnJ+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=qEgnk9xKoIDHaddYFYnHoUGUyrfu2g7kOQ8mkMaKhr0=; b=WUiK0PCLfTMKqkPF2XSCuLqCOjVT/mqTih2X3V4IzSnt7HAgLj/GGy9WKTH2IFGVGuEH1mQ/Fs1X1KfqozX4TDzcwGwz7S/wd2f89SGkI8KlUuNo31lxRPlTfdabH+Qex+rkxWMjtG/eAVpvud+HM5V5qZuLCTeqqA5NXS60ee4ySxajLXnpO4BJ3fm/199KeB9I6JE9lEjKKc/V6FlDEUUJGTJwiI3S8ZyZYJKwxdTW+NBnN9QMdJ/Aqs/ZCqzgK5S9SxqV0NnCshmk+baBvJHcZdcjjGhmN5vsellKzC3MtGr6XR5b6CALXxVp+/k1YZDDZ20KCNIrMat7bEs0DA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:35:06 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:35:06 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 08/15] net: enetc: add VF-PF messaging support for IP minor revision query Date: Mon, 11 May 2026 16:07:58 +0800 Message-Id: <20260511080805.2052495-9-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: c83c4037-c046-486d-7b9c-08deaf38340f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|56012099003|21046099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: XDlI7VLClZGGVB03+bkcJydlZXiLRo+8nUNWRTXCuBFIUOZFqXgC+O5GXP5buFKegbxYMYeFkLdQg2k3GnrRmDuGGoFBfGG/mlerU84ZJb1mK5BnryIBzu9GAN+TtzDL2eJW5csSLKL4RzcGB6suoWTgHKs23sZXVqkqQpgoGwxoCNzIa/fgsvW72nEVD2Q9zYlqAvI5TaZ7r/qnh0BlIQ+Boy1QNIUqyI0Wi7NfePXbSD5vIJ6Hk4cgxEU75ijPRVnt01A/ca5KuO0eoeOrpBpY4hO3aGinFXBQlR66lqHFlrz16YlEt5PCF3xZez6XOI6rf+nbLXgooiuz15MeR2H2wABfTCBWC1WVxXSw/lQLMCJbG5ZNaTpOGUPsy8V7Eth3wN4Q49t/jFgtkYtPfUl7f9hHdFXI42Ut7rzLGsa02m99bRtcO940KrQ5bSNAqO30GUOpxCvdu1A+vKLnlO9ZW2zMuKv0ie6Wb19WjcfBUDd3YR+vwEfQdjYOJ6EGWYBOIbFO/m3T1xXvArHcm+hOn16dvdWkVt2T7TH5O/N/uIg4lTBDu/C9KpG1AIRg3XRbNiItolXY3Nm6z0ibTPSIc42mJyoLiQeWmvR8FY3SAQBnw+v6ov0w4LcRlzQ3AtYuI9eQhtyeY9ykm3l25V6Ylm0boysZC7+zh6Q0jnBPofQzr4ww8PaJRYcmScjPyautajI6nHCebyvBsdtZGuc/jT3VVXy9o1+qWBNG+QcGA/p8K1wUGlp3p88qvSz2 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(56012099003)(21046099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3XrJlu32eAMQTZ7pAPrA5UGJDYdagni9Bddeao5k1JgTKoTabu4Q97fsxCzR?= =?us-ascii?Q?3mZcmH87h0E++blvDBS6xga/6dKqhuxYjCpiSRF4/hd8qrTtZG47ENC7k+zu?= =?us-ascii?Q?PQ+lLgwducGB1pIc4HhwfJowoBYxJgG1WTWc5+kkUBSe3pJBU6Q7spvLM9FV?= =?us-ascii?Q?kRLwn0uMeaskeqfGDfCMVmEPLyQX3qFTcMIviRXSfvAmLMtxtS91gHPvAYHa?= =?us-ascii?Q?H7EKc8oEkWae8lH0zyyofoGnBw+uHSFQqBWHvxyQC6/kuTcfOyK6gx9c1Mgd?= =?us-ascii?Q?BtI24vDyjf2sIet0lnjDmhyc/RDcAsPV/PuRbBp+0hYDikU/3+1fyMAtQEzx?= =?us-ascii?Q?BjC2fOmNqnJXwRWqyDKWDJqU6JpybtvNafU5rq3K9GCGWpvca6EQ4zlhY22Z?= =?us-ascii?Q?EO4cG9Sc87RR4o/ba1tOwnu7t03YyHjkMhM6pMXeFt4Dm2qEv/9z/p60IuKx?= =?us-ascii?Q?brpEgGQUfbb+KWqyA9dDwMdtqa9sNO3w6Y6S1eBx1zf/S8p7cl4JK9V6ZLsw?= =?us-ascii?Q?lImY94iGF/6MRG32BD5JceZPB04DS6IQlp5yFuowBMONiipQHFGdyOZbt+Vt?= =?us-ascii?Q?vYSIesikAu0pWUPKbq2jNucaAKzrZ36tieEddeO5cpsdR4Y1Ot884v6Kd43p?= =?us-ascii?Q?/PLvVSjjqUvJ4W3QZwKbX2CQ2LRvmvIRUkt36LweBF4c7wi4VWy9S5SzDE5W?= =?us-ascii?Q?VVlcq2kPb2NrxZbYIVw5mSiW91Wo01VBSztkh/z6q+qfSl2Ey64hiqk/ZKgF?= =?us-ascii?Q?NPgaKJ9lJpst+1gCWxpTl3b3VD4SCNMd/oFLt5i33tjBhE/ZCD88UsO89FgT?= =?us-ascii?Q?QaiHaDVJ9Rv3NNaMOgK0B3DSkvxjUj9Ah+XsTSrgguq12fYqFLeJIp2vTvgM?= =?us-ascii?Q?FingJnx7wgz6WCVxgzrMnkcAcWd+o65spV/+LWz0ZdZYJEv48pf2yi4Up6Wg?= =?us-ascii?Q?HJ9ogCG8cj0vMVOEWmhgN8K18mWb79lfVJdhlrsjnVBGPALnh4i3n+x47QYn?= =?us-ascii?Q?nj93DK4vn/Hg9yNDJryueIODNZUSFSmJxp9uVcPcNKBwt6cx+d6zFTapbheh?= =?us-ascii?Q?8CkdpuqgXH5/RVobIICqZSaw/UZUsHw7n/1+7YcyK7xJGyNdljNP3eGQuX1x?= =?us-ascii?Q?1FaeQEBdqErVJQfvI7a/XouDiNOJFGR7/kkIDzb476QFuKCMNRSFNiXARvO0?= =?us-ascii?Q?AatlDHi3s5v1Poue/CPRC6YtCNb0LtccIpXlwpU+Tx4jiGKHiKPBc5wljEFq?= =?us-ascii?Q?8S/Ekbq7qYbGWdRduujdLZLxOJdlveXEuZztuX2pIqwwgJs9RjjZ4pYTw6Ny?= =?us-ascii?Q?5ho+erGQ3WTyDxZI3C4nTnY/9kSviA1WYWRW18a8OUTzGKTgOocaVT4nz00J?= =?us-ascii?Q?Yb5k5YpK5oLLhAzDufMkNImOsCczqncRt2n/Xw7NcgzXLhLLNOgLE8Sf4n/X?= =?us-ascii?Q?M07MXKplxI8Wt2ABOP+KlAf0FFozTHou7lWF0m737R5fUtFabYZGVU0pDprD?= =?us-ascii?Q?kLQgYielNt727rrCs4QyRTpcFDbl/775PhsiOujExoCDtCeazp8dafh12WU/?= =?us-ascii?Q?Ggkcl2XaXYHRCt8DNHJhmCXFVlo4IwcJMGqw2E2KCyqkSn+g72NrcHveT8y3?= =?us-ascii?Q?wd3G4OvGnLCV+DJrnkJNjOfmDYTWE7dsCNUVAvfXE0qXF7lViwMGcttrEssU?= =?us-ascii?Q?eCvjONytK9+dv0vzLOQba0bMFUjvE9AUAYKV4ZqMLk+vK7CpRbFwhPF6fHaD?= =?us-ascii?Q?79Rn6MIjIg=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c83c4037-c046-486d-7b9c-08deaf38340f X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:35:06.1367 (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: PowadZgA7nmITbNaOzkHTWbxqYpI39stih8fKakrguBW44uZToQ1Qe3eTmEmO6pAp8Y5CbmZSEt8LJ+6asoWxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" For ENETC v4, different SoCs use different minor revisions, such as i.MX95 v4.1, i.MX94 v4.3, and i.MX952 v4.6. Unlike the PF, the VF does not have access to a global register that exposes the IP minor revision. In the current driver model, the VF must select the appropriate driver data based on this revision information. To support this requirement, the VF now sends a minor revision query message to the PF through the VSI-to-PSI mailbox mechanism. The PF responds with the IP minor revision so that the VF can match the correct driver data. This patch adds PF-side support for replying to the minor revision message and VF-side support for sending the query. Signed-off-by: Wei Fang --- .../ethernet/freescale/enetc/enetc_mailbox.h | 28 ++++++++++- .../net/ethernet/freescale/enetc/enetc_msg.c | 29 ++++++++++++ .../net/ethernet/freescale/enetc/enetc_vf.c | 47 ++++++++++++++++++- 3 files changed, 101 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_mailbox.h b/drivers= /net/ethernet/freescale/enetc/enetc_mailbox.h index 260c7333d93a..294185b54147 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_mailbox.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_mailbox.h @@ -65,6 +65,9 @@ * (blocking requests), and * 2) PSI_TX_control: PSIMSGSR[MC] - for PSI to VSI notification messages * (async mode) + * + * Note that for some GET messages, there is no COOKIE field, and the CLASS + * CODE field is expanded to 8 bits. */ =20 #ifndef __ENETC_MAILBOX_H @@ -93,12 +96,17 @@ enum enetc_msg_class_id { =20 /* Common Class ID for PSI-to-VSI and VSI-to-PSI messages */ ENETC_MSG_CLASS_ID_MAC_FILTER =3D 0x20, + ENETC_MSG_CLASS_ID_IP_REVISION =3D 0xf0, }; =20 enum enetc_msg_mac_filter_cmd_id { ENETC_MSG_SET_PRIMARY_MAC, }; =20 +enum enetc_msg_ip_revision_cmd_id { + ENETC_MSG_GET_IP_MN =3D 1, +}; + /* Class-specific error return codes of MAC filter */ enum enetc_mac_filter_class_code { ENETC_MF_CLASS_CODE_INVALID_MAC, @@ -108,13 +116,20 @@ struct enetc_msg_swbd { void *vaddr; dma_addr_t dma; int size; + u8 class_code; /* save return code from PSI for 'get' messages */ }; =20 /* The PSI-tO-VSI message format, only a 16-bits code */ union enetc_pf_msg { struct { - u8 cookie:4; - u8 class_code:4; + union { + struct { + u8 cookie:4; + u8 class_code:4; + }; + /* some messages class_code is 8-bit without cookie */ + u8 class_code_u8; + }; u8 class_id; }; u16 code; @@ -150,4 +165,13 @@ struct enetc_msg_mac_exact_filter { struct enetc_mac_addr mac[]; }; =20 +/* The generic message format applies to the following messages: + * Get IP revision message, class_id 0xf0. + * cmd_id 1: get IP minor revision + */ +struct enetc_msg_generic { + struct enetc_msg_header hdr; + u8 resv[16]; +}; + #endif diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net= /ethernet/freescale/enetc/enetc_msg.c index 1384752efa7b..f3e78865617e 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -87,6 +87,20 @@ static void enetc_msg_handle_mac_filter(struct enetc_msg= _header *msg_hdr, } } =20 +static void enetc_msg_handle_ip_revision(struct enetc_msg_header *msg_hdr, + struct enetc_pf *pf, + union enetc_pf_msg *pf_msg) +{ + switch (msg_hdr->cmd_id) { + case ENETC_MSG_GET_IP_MN: + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_IP_REVISION; + pf_msg->class_code_u8 =3D pf->si->revision & 0xff; + break; + default: + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_CMD_NOT_SUPPORT; + } +} + static void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf_id, union enetc_pf_msg *pf_msg) { @@ -121,10 +135,25 @@ static void enetc_msg_handle_rxmsg(struct enetc_pf *p= f, int vf_id, return; } =20 + /* The new messages are currently only supported on ENETC v4. If v1 + * requires them, the current restriction can be lifted. + */ + if (is_enetc_rev1(pf->si) && + !(msg_hdr->class_id =3D=3D ENETC_MSG_CLASS_ID_MAC_FILTER && + msg_hdr->cmd_id =3D=3D ENETC_MSG_SET_PRIMARY_MAC)) { + dev_err(dev, "Unsupported messages for ENETC v1\n"); + pf_msg->class_id =3D ENETC_MSG_CLASS_ID_CMD_NOT_SUPPORT; + + return; + } + switch (msg_hdr->class_id) { case ENETC_MSG_CLASS_ID_MAC_FILTER: enetc_msg_handle_mac_filter(msg_hdr, pf, vf_id, pf_msg); break; + case ENETC_MSG_CLASS_ID_IP_REVISION: + enetc_msg_handle_ip_revision(msg_hdr, pf, pf_msg); + break; default: pf_msg->class_id =3D ENETC_MSG_CLASS_ID_CMD_NOT_SUPPORT; } diff --git a/drivers/net/ethernet/freescale/enetc/enetc_vf.c b/drivers/net/= ethernet/freescale/enetc/enetc_vf.c index 31ca08e679b8..d17ab5b2306d 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_vf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_vf.c @@ -106,6 +106,9 @@ static int enetc_msg_vsi_send(struct enetc_si *si, stru= ct enetc_msg_swbd *msg) case ENETC_MSG_CLASS_ID_MAC_FILTER: err =3D -EINVAL; break; + case ENETC_MSG_CLASS_ID_IP_REVISION: + msg->class_code =3D pf_msg.class_code_u8; + break; default: err =3D -EIO; } @@ -141,6 +144,27 @@ static int enetc_msg_vsi_set_primary_mac_addr(struct e= netc_ndev_priv *priv, return enetc_msg_vsi_send(priv->si, &msg_swbd); } =20 +static int enetc_vf_get_ip_minor_revision(struct enetc_si *si) +{ + struct device *dev =3D &si->pdev->dev; + struct enetc_msg_swbd msg_swbd; + int err; + + msg_swbd.size =3D ALIGN(sizeof(struct enetc_msg_generic), + ENETC_MSG_ALIGN); + msg_swbd.vaddr =3D dma_alloc_coherent(dev, msg_swbd.size, + &msg_swbd.dma, GFP_KERNEL); + if (!msg_swbd.vaddr) + return -ENOMEM; + + enetc_msg_fill_common_hdr(&msg_swbd, ENETC_MSG_CLASS_ID_IP_REVISION, + ENETC_MSG_GET_IP_MN, 0, 0); + + err =3D enetc_msg_vsi_send(si, &msg_swbd); + + return err ? err : msg_swbd.class_code; +} + static int enetc_vf_set_mac_addr(struct net_device *ndev, void *addr) { struct enetc_ndev_priv *priv =3D netdev_priv(ndev); @@ -192,6 +216,27 @@ static const struct net_device_ops enetc_ndev_ops =3D { .ndo_hwtstamp_set =3D enetc_hwtstamp_set, }; =20 +static void enetc_vf_get_revision(struct enetc_si *si) +{ + int ip_mn; + + if (is_enetc_rev1(si)) { + si->revision =3D ENETC_REV_1_0; + return; + } + + ip_mn =3D enetc_vf_get_ip_minor_revision(si); + if (ip_mn >=3D 0) { + si->revision =3D (si->pdev->revision << 8) | ip_mn; + return; + } + + si->revision =3D ENETC_REV_4_1; + dev_info(&si->pdev->dev, + "Failed to get revision, use compatible revision: 0x%04x\n", + si->revision); +} + static void enetc_vf_netdev_setup(struct enetc_si *si, struct net_device *= ndev, const struct net_device_ops *ndev_ops) { @@ -251,7 +296,7 @@ static int enetc_vf_probe(struct pci_dev *pdev, return dev_err_probe(&pdev->dev, err, "PCI probing failed\n"); =20 si =3D pci_get_drvdata(pdev); - si->revision =3D ENETC_REV_1_0; + enetc_vf_get_revision(si); si->ops =3D &enetc_vsi_ops; err =3D enetc_get_driver_data(si); if (err) { --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010031.outbound.protection.outlook.com [52.101.84.31]) (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 1D5FC3BED32; Mon, 11 May 2026 08:35:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488540; cv=fail; b=eVS9sG5594AO30tw6wrnKdM4BU5EsNgZ3GTz+5N99IdtrX1PRMRcQBnCtnE7gKb9CNBzLqlzDls7cxF9EAQsHqsHUroOVgH+J8pKaFdJzwJ2ZNKf4swhzChf1WOlwVWILVHDuPr3T0O6PuIr2JWAxNd7BlvtwQoDydT5G8nIkIw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488540; c=relaxed/simple; bh=WiJvnZIzF6vNc5FQ0etw0fe0LHiLbze73mz3Sginzz4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=RwPGUSW0NJzIQrtYQ7DNTp3WwvWArPiakAEn3+iMEap0rxAaqQZg7yLSUyLQF2hA+j4TsV3sHCwFXmG5tbP+fGuVm0yOG4nxMSH9KHm30kgf0FFgc8saEFubQVYeHHTis3ywlHW7uGYojsCvqcigWquXfnEfg+PKXJKOGD25TN8= 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=YC2WnmHn; arc=fail smtp.client-ip=52.101.84.31 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="YC2WnmHn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DJ2u7BPxfYNsgJJ5iX+5vdgW0BHl2k0c7yk8gsW0fVziDc7ypSM6IZ8clqcviPM81K/Ju6UPz18wfR8boo6xnnoFsJTZTTd9fScyF9RzangXXe7jmHO3eSAgbt6llCISulUc+TKckvC7c6XyOHT9z1xS3ZSC3RASWF4zStQO+RM6d0noyQmSy/OLOiwsB7W11/QWNnhGULsXj1rYhfHVzgdB82cPEJfPdX3IEdF0yZxcM7RKA8D9DdqqFN6aU4YQxCP2Js85ruRpSPPYoq3t7CEP81T9J/JMz2dCKzrkCO4ik3nkLlhabnK5ErXMEguQyLpCqq8fSuW4G0P0QWRxFA== 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=6/GMabFPV46vWBKf1mmOIC4K7YhAqIflMjxcMqSloHI=; b=MBfhpFudfdfJ6ZyiUHzYSITo25VjwkiYYHrjuoywBdtnEAWDbj5naBAqs6W+oPBf7XfBvamDkxiqXSPqS+a1AD74HDvxLm+IHx9lWeDT6KtDoD364JvAc/CBqoIeYUCWMHoG5m7Y7XTtlzEJzSQEo4G+sxQ6jvm2K887x1TahH9jY4zw4rzh4PtKWX4tWxB7Y5A7Zz7Ws3MwzhxJNlDkpItGFeCcf7mhWfNT7kXDbYtkYQD2bp/uZWXl1UX8FSJl0akG2swjC2n3OFr1SkxzHPp3xSvrzyyKP6QHD9yyj/8/NEglljZQ88fpU6VbJKUCf/4o4ysjsLsj3OmmEmAhWQ== 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=6/GMabFPV46vWBKf1mmOIC4K7YhAqIflMjxcMqSloHI=; b=YC2WnmHnnf8wvq5oxiP1xPZyMnI0+gdkgZ23rdcnxsarQsEZbDt2JzM8DJsK8IYqFqL/k15OQFyoJWr96WpXLZJpYrBcW+42DbdS1s03EbwNxzEmQsBpWkiqeo63E4yqGcCYJr5wFbV9jE0FZ1EbXwG35ZbFfjMbr5w1AIZpoM615gRZ2T1qNXCPkYTke0UE2UDbthgT+tAg9w7wdy+bCoo9JAzd0YqzorJ756LSvof7oYqF7YjNa8Yf/okw1/6jXSrX4ZlK84hOr0Lp7wB++RUd0OzKqVyFOCdQM0ySLd6Mj4LjRM7bJJ02KX2rI8NJgZJ3zRdljxznOlWl/ewc2w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:35:09 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:35:09 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 09/15] net: enetc: align v1 CBDR API with v4 for VF driver sharing Date: Mon, 11 May 2026 16:07:59 +0800 Message-Id: <20260511080805.2052495-10-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: 7dc350e5-8479-480e-d954-08deaf383614 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|3023799003|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: doIflZL42IbH6HqYnK9fq/Ftx6bAJdDgI/CKIFlUq3Vt1AP3v9dZsanLcwMhdAU8ordLCPuFHiLP82jX3fC4d+rj01Pu9Rzk5Hd6Uur4LTyrVkfNEyaXd/gc+StH4CKTaVeFAui5ReRlUks2CiqrWEetw4XzWe4oFYBx4YVVJlSYb4OITOKaQOF5Kp0cLoNiEZRfDgMoZmY5WcLXtEMINHT+SVs1lH8nsJMJQz43AWnXwWhIV3TekA1C1VFSg3dErJI/LW+LyhxIxWPFWt1TsOFJoDWCDZ3aNL++F7U1aMUXVINUZHfH6Svcx/A7yqr/ViMwCDvjHxaHf//UlHm/J6H1bnsSrmvwFTuKN0oERuThcaCMb3nsGynPuDrReVpWMDgeYH+yQ1NrITdFhcqEVvnXzbGVCc5eybZfaRB5HlqSWI3fNs71Ey1gP62vSScjxYD4/FCRegmEufhTYPQTIzVx6iIGYMDxHgXCR8k9x/NQt0E9ViyxLOoavuMlILpTa/JBkvG2UAhwxYy0EtDFx/ol2DMpNpS8+tGPKXFiulkOG4cqmEWrq1spfSU2CuVagId/NTcbr0ouSZtWvb9LwsyRg/DNQRJPJIR2fdyoyVHV/jEum3WnZ2CGuGOb+o8tMvFlFMFoa5aRBaJVab86nHLlcFfeqbdofwHdWG3ldHyD/L95zMKOukCh09iTKfp40gMCSK1qkjhYUtUtO0ZfzL27PIwgS3J7RajeR5egoguqpea7gfujCUwiXXASTtz3 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(3023799003)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YBhHym8cDLPjQw88WwwRuOPfSo5NOMI/5gNVeUTwaAJs2x6GbX29bEKIBSx5?= =?us-ascii?Q?STR/U4+yJhI3tSXunDD2ET1FEYlouGHMGecSYtUBXok7et8WTh9MiA5sLZ89?= =?us-ascii?Q?ivRBZU6jix+Zj2TXwRXXfAAhPDeWgZDfU0FmgB0BknnX54R4oRBkovp9dBsT?= =?us-ascii?Q?X8DQWxwXjMqvV6ad5MmgGz+un8iEZlwzmuMO22JcDfj+IHQX99dyccJfAZaR?= =?us-ascii?Q?gvXSIZcMuI/ADyjF8N3acntnseUWP58knavQl7OQPufsp60uEdxoMsXOQu9t?= =?us-ascii?Q?uidl+RrlFYIl2Zm8s8cl7IDC/IjsNvtnL8a+OwrE+yPld8RdcuEFM5ayoc5W?= =?us-ascii?Q?2stnoGq28FF0oTPJG9zZL+FcqGSYVtL8MomfFfMw3A/3kIb3nbHo9wHgeDox?= =?us-ascii?Q?0++zy6dMk+BxCBqa60LppSeYKsXu9NyJ1UoN3prXF2PPaiS7ywvpGmxN0PO8?= =?us-ascii?Q?pWBpsXT7C8K4I87BIujn5XlHZRfX+WsgRyTSE++h5KzObUJm9EyNOVbybpTN?= =?us-ascii?Q?BF/ZQZaGv2KcNGlficYFRVqdjgA/AKwJb9yQZx2ICrTfZe4VSFTP0MELwgFk?= =?us-ascii?Q?fE3nHlULW10wx5m/nQ4EeCWImSNCTB2dYj3bTG5m4cbgI61LEJoV3sPMbueB?= =?us-ascii?Q?/gdjN2FOsQnI0cvhugShCgv7bFBm47dixCJHzed1TDAs1YMLUNFa1ly5YAPD?= =?us-ascii?Q?Tiz+ao5MJR7PvVvy0kPCnjHzhMi7nyf2sbxMNZyhJCeE7sUqYo7yqqWVdBjd?= =?us-ascii?Q?RcOuNbsrU9FKpUhpRtmBDwP8Otekkvl4T/aBqbOD2H03c8LbA6jVtvRy3IpW?= =?us-ascii?Q?CZaLV3QO/ZC54WRzE9miEad3XaHGcDKZ3NsQbNHcojt05Ip0cJqXCUQ2S5Sb?= =?us-ascii?Q?rJqSAg/sbJj0felXzziSz4mItpEF885uekcrk1o/P4/VEA1m7NpGK7RlLIrN?= =?us-ascii?Q?uYqwVWcdnAGIeum+iNBClWPXxXpMa5m/tLmzpqVdqVPM93MpI4KZc12Mrc34?= =?us-ascii?Q?PhYmwWeBijbySwWLBhoS/wk72Q73hj1Pat1BzFZy4+4s4BgR17Bk5TtpZnpt?= =?us-ascii?Q?i6UAHIm4dWvgoS57w9rck/Z2eXxyrElww89x6G8p3VCLWxtHk1APOWIRgJLU?= =?us-ascii?Q?QswHsW+By9mZ8n3fjoHbQYnZrdsPVF3FhIQPq78psaWpX4FSUfThxw3NiGKE?= =?us-ascii?Q?2aeMw5ObdtgIO5Xz7onNfOhMCUacw0duNL7bZOb0ArW4KSWfGrENzEte+WAc?= =?us-ascii?Q?eYJZix/QZs6QJeB6sOEL9OfadOWsS3Auaxby4rCnIc+tckNdo6Q/Bfaw8kMC?= =?us-ascii?Q?z1N2DWLSz3XHf4npJYXshteS5FAhCiEy65swDfHBIJ1pk6ifu0eJfVLdzUHG?= =?us-ascii?Q?R0YkNZzLZvfyTWyv0GMuBNa12kb0Sg7WYhCNagiYZwQlXNEgPPIg8K73Lrva?= =?us-ascii?Q?YoRXgyPOlwZGnFzSVSTYB0WR0QgROSBTjCGASUPVgrS4cQdc3xwe+9lQr8ss?= =?us-ascii?Q?5uXOulcWxH/bNPMujX/172rfGZVYkIAzPRw0SNBzx2SodD9rQVgkFzhhmV9Y?= =?us-ascii?Q?DsK1/3pdv6hz7N+aDS3GdJQ/qbcYKZkiDNwE60/0/3gA2T2UvEy6ib0qsOLY?= =?us-ascii?Q?dJ5UEQNHYY3VayeMpw97jVygQrNFTN6NYfcKCg1np5YlhpGbqIWSNEq5C2OR?= =?us-ascii?Q?vaA31Fseq4I2l63LSVZPLwVhua8Zd3S9HX5zuFbS5mEYb3mQS65yQap47Njt?= =?us-ascii?Q?UhK1lpMa0Q=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7dc350e5-8479-480e-d954-08deaf383614 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:35:09.5227 (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: KRkq9UbYu8oC5cFpxJUhp9ga9x1OkNzrXJGnc+aXKMs6BIk+6Mzq8xPX7QMpKKc6fYeZ5JmEfJ8Jv6NFC8Lmgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" The upcoming ENETC v4 VF will share the enetc-vf driver with the v1 VF. However, ENETC v4 introduces different CBDR (command BD ring) setup and teardown semantics that are incompatible with v1. To support both versions in the same driver, add setup_cbdr() and teardown_cbdr() hooks to struct enetc_si_ops, allowing the driver to register version-specific implementations. This patch refactors the v1 CBDR functions to match the v4-style interface (taking struct enetc_si* instead of individual parameters), enabling them to be registered via si_ops. Changes: - Update enetc_setup_cbdr() and enetc_teardown_cbdr() prototypes to take 'struct enetc_si *' as the sole parameter - Extract parameters (dev, hw, bd_count) from the enetc_si structure within the function implementations - Update all call sites in enetc_pf.c and enetc_vf.c No functional changes. This prepares for adding v4-specific CBDR handling in subsequent patches. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/enetc.h | 5 ++--- .../net/ethernet/freescale/enetc/enetc_cbdr.c | 16 ++++++++++------ drivers/net/ethernet/freescale/enetc/enetc_pf.c | 7 +++---- drivers/net/ethernet/freescale/enetc/enetc_vf.c | 7 +++---- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc.h b/drivers/net/eth= ernet/freescale/enetc/enetc.h index b70b625328ea..772f0ab2f8c1 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.h +++ b/drivers/net/ethernet/freescale/enetc/enetc.h @@ -537,9 +537,8 @@ void enetc_mm_link_state_update(struct enetc_ndev_priv = *priv, bool link); void enetc_mm_commit_preemptible_tcs(struct enetc_ndev_priv *priv); =20 /* control buffer descriptor ring (CBDR) */ -int enetc_setup_cbdr(struct device *dev, struct enetc_hw *hw, int bd_count, - struct enetc_cbdr *cbdr); -void enetc_teardown_cbdr(struct enetc_cbdr *cbdr); +int enetc_setup_cbdr(struct enetc_si *si); +void enetc_teardown_cbdr(struct enetc_si *si); int enetc4_setup_cbdr(struct enetc_si *si); void enetc4_teardown_cbdr(struct enetc_si *si); int enetc_set_mac_flt_entry(struct enetc_si *si, int index, diff --git a/drivers/net/ethernet/freescale/enetc/enetc_cbdr.c b/drivers/ne= t/ethernet/freescale/enetc/enetc_cbdr.c index a635bfdc30af..e4a393a8a58e 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_cbdr.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_cbdr.c @@ -3,10 +3,12 @@ =20 #include "enetc.h" =20 -int enetc_setup_cbdr(struct device *dev, struct enetc_hw *hw, int bd_count, - struct enetc_cbdr *cbdr) +int enetc_setup_cbdr(struct enetc_si *si) { - int size =3D bd_count * sizeof(struct enetc_cbd); + int size =3D ENETC_CBDR_DEFAULT_SIZE * sizeof(struct enetc_cbd); + struct enetc_cbdr *cbdr =3D &si->cbd_ring; + struct device *dev =3D &si->pdev->dev; + struct enetc_hw *hw =3D &si->hw; =20 cbdr->bd_base =3D dma_alloc_coherent(dev, size, &cbdr->bd_dma_base, GFP_KERNEL); @@ -23,7 +25,7 @@ int enetc_setup_cbdr(struct device *dev, struct enetc_hw = *hw, int bd_count, cbdr->next_to_clean =3D 0; cbdr->next_to_use =3D 0; cbdr->dma_dev =3D dev; - cbdr->bd_count =3D bd_count; + cbdr->bd_count =3D ENETC_CBDR_DEFAULT_SIZE; =20 cbdr->pir =3D hw->reg + ENETC_SICBDRPIR; cbdr->cir =3D hw->reg + ENETC_SICBDRCIR; @@ -46,13 +48,15 @@ int enetc_setup_cbdr(struct device *dev, struct enetc_h= w *hw, int bd_count, } EXPORT_SYMBOL_GPL(enetc_setup_cbdr); =20 -void enetc_teardown_cbdr(struct enetc_cbdr *cbdr) +void enetc_teardown_cbdr(struct enetc_si *si) { - int size =3D cbdr->bd_count * sizeof(struct enetc_cbd); + struct enetc_cbdr *cbdr =3D &si->cbd_ring; + int size; =20 /* disable ring */ enetc_wr_reg(cbdr->mr, 0); =20 + size =3D cbdr->bd_count * sizeof(struct enetc_cbd); dma_free_coherent(cbdr->dma_dev, size, cbdr->bd_base, cbdr->bd_dma_base); cbdr->bd_base =3D NULL; diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index fea5cb6a1662..b126a624e6dd 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -798,8 +798,7 @@ static struct enetc_si *enetc_psi_create(struct pci_dev= *pdev) goto out_pci_remove; } =20 - err =3D enetc_setup_cbdr(&pdev->dev, &si->hw, ENETC_CBDR_DEFAULT_SIZE, - &si->cbd_ring); + err =3D enetc_setup_cbdr(si); if (err) goto out_pci_remove; =20 @@ -818,7 +817,7 @@ static struct enetc_si *enetc_psi_create(struct pci_dev= *pdev) return si; =20 out_teardown_cbdr: - enetc_teardown_cbdr(&si->cbd_ring); + enetc_teardown_cbdr(si); out_pci_remove: enetc_pci_remove(pdev); out: @@ -829,7 +828,7 @@ static void enetc_psi_destroy(struct pci_dev *pdev) { struct enetc_si *si =3D pci_get_drvdata(pdev); =20 - enetc_teardown_cbdr(&si->cbd_ring); + enetc_teardown_cbdr(si); enetc_pci_remove(pdev); } =20 diff --git a/drivers/net/ethernet/freescale/enetc/enetc_vf.c b/drivers/net/= ethernet/freescale/enetc/enetc_vf.c index d17ab5b2306d..eb6f8065e1ea 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_vf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_vf.c @@ -320,8 +320,7 @@ static int enetc_vf_probe(struct pci_dev *pdev, =20 enetc_init_si_rings_params(priv); =20 - err =3D enetc_setup_cbdr(priv->dev, &si->hw, ENETC_CBDR_DEFAULT_SIZE, - &si->cbd_ring); + err =3D enetc_setup_cbdr(si); if (err) goto err_setup_cbdr; =20 @@ -357,7 +356,7 @@ static int enetc_vf_probe(struct pci_dev *pdev, err_alloc_msix: enetc_free_si_resources(priv); err_alloc_si_res: - enetc_teardown_cbdr(&si->cbd_ring); + enetc_teardown_cbdr(si); err_setup_cbdr: si->ndev =3D NULL; free_netdev(ndev); @@ -379,7 +378,7 @@ static void enetc_vf_remove(struct pci_dev *pdev) enetc_free_msix(priv); =20 enetc_free_si_resources(priv); - enetc_teardown_cbdr(&si->cbd_ring); + enetc_teardown_cbdr(si); =20 free_netdev(si->ndev); =20 --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010031.outbound.protection.outlook.com [52.101.84.31]) (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 BF8DF3BFE5C; Mon, 11 May 2026 08:35:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488551; cv=fail; b=UKz5kb7J/ddrgbJEtxnda4gA3ExSPt0MC3PCqm4wiNctvtPjzfz3uMO0WPtwPxDw0S1GpQyzlTUHhae8Vbd77ADnc9EgUbdOHsrNLC7jM9qoJacBJDrlNVOmusjy1TuLSBTU0o6bwdoQK2FLIGwvreKu2PY0EddQOB9nGAc13H4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488551; c=relaxed/simple; bh=5S9vTN7dtMBvn0tuT86H/z2mD+c5GtieOrKAYlHi9MA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=oMVWxQxlnrLp4rlbSmxL0kjKQx/6Tpa4HIgAtlif3oDbnG0bqsM+6cFUtUWSyXkppRTKz74WUONslbFLYDywgQZ6X/jMSyb+NvXkAy5tL7uEpi9MZetwZu8tHimIevaL4pk69YQkvcnAHW19PWtg3DI2C+dkgVmNyq53YmMAShU= 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=AZzXhNpK; arc=fail smtp.client-ip=52.101.84.31 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="AZzXhNpK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wkpnuBb3SMHIHIOzdLWCNwDPH/p7UWX0A/6FRxFSvpUfZ3BGnnXNMshxmx2LT0/O/WsnkY6PsTheesB7uLCl/XpegWX/Ry7ruA03oAmyapn4gewLl0uKiH/w8GQxQbzAe8DJYJcDyCHy6pi+EEv9lnLbaDTvQx1E/kkBRdVg51Ib2qAEtBXC3CDxEH4WuoHO2o3QlF0YHnlAB3x2TlGnUiIy954VUyXOGOBNam5z1Uj//fT9KsB6MsXBYoxUp2erR4vaSAPcV5OmUAvDQuCdBZn+F3km0dC/uN0KHPRGOlz7KanPhYQJ5IEWy3RE3nbW60A3eiLMz2o3Nykd5ZsnZg== 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=/oFNZ3XmoXKbFV0jEd5RpWiKTQIjFNMgtvFZdXD8+Ig=; b=HVtkl7vV+M3SgiWJ/nCOm1mfs1Xfm/pnV2nz0r493ZZUEqBjfsI290PWl5HIBI10uOwh4bauJo1fQAjdahT/9BvjDnzaXr8qzI7eRYIrvU6/0QKziUMyivvMv3MurXuPdeNjmsOceATH5QYPCpPvkD3bNfi5DhrQUUjIqAidREmKuHTfCcSuYk/aBaHS7gLTftU5Y+AZ+TKD9rPoRuYHL0Rq2iHz/TGJF7Kbf4vEwGvUC2A3zzejnge8ty7SL4I2jDBXo7jOrm9xToAyi1GEbcxMgftASOTvfPQKCEaZMzV825HvugsKdyiagmh3kSCzLN/yyrh4X9E1bEQB0e6mlg== 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=/oFNZ3XmoXKbFV0jEd5RpWiKTQIjFNMgtvFZdXD8+Ig=; b=AZzXhNpKSon72gCzG2ReUuGtCBc4pugvoMXINDk59RFf4B6JgV+YjKiJxKCHPXpcMWgkUcynVx7XDqM727jDYMGvaS4L+t6Nc5dFLTGtEYr+5yQDOZALVdm+h9YkFgAOZww7u8XLo1EeL4Hr1OlHjyA0LwfPEjdlzxXYFdwXkcxFGBzh+IMoKssisQ0jOMp56YYp78+9WExerlm09Yq3dw6IXAcriG75AoCx8PC7IK/eidsJK9QZFRIKPGR9ZCUjWMfmfnqXTdP05IOQcAF4Rc+HZyONgdPIWHEbE7aRCig87hwqwN0CcTSf0CoyHfQ9s9DcYUGknljXEzq4CLYT2g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by PAWPR04MB10055.eurprd04.prod.outlook.com (2603:10a6:102:380::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.23; Mon, 11 May 2026 08:35:13 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:35:12 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 10/15] net: enetc: add CBDR setup/teardown hooks to enetc_si_ops for VF support Date: Mon, 11 May 2026 16:08:00 +0800 Message-Id: <20260511080805.2052495-11-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|PAWPR04MB10055:EE_ X-MS-Office365-Filtering-Correlation-Id: 8982a2fe-c81b-4854-5967-08deaf383818 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: xC6CQyn/DJHF5nlJBVJ7NPcQQzXKCu44c9SBrEeTEQ670BNCFtRHXqmXicW93JmHAVbhjY7l8SqpHkR6lQvAc6/lS1Da2Ufnjt0zlN15IMQYBlkY4RgXjdzndxPG4PvbLovc9kRLEt5iT3RTkir16JDrCo1tHlEbCfwRx/QaUBy+sOYqwoLSEDKTw8qj/LqN/+2c22qsq9Sql3rHs6cW4/4oMEGe9X3MCKBdgSrpJR2Dfh9B4LMlBFQf5U8mdWA0GmqRfVoFKRHQIsiZCjOa8kK/xGU7U1bS9pT4KLCANrgzrIUnk5MoT0d2qggPqM44mXjic/QkKwCuHzw6mOEXHAFjCaYsV0fOdOYet/ifNzFV33/sffiXaIgidehR7FDwbkSCZqIUvrJqkMN/w1txNFddW0R2Om1Vigu3pe+ipxsVCvCj0+xPFqlzP4as8f0g+/y5C3/o1SWZ7vaoHgRUEbQDTp3UCx19QpgOAsq65xMgk2r0JEij5ChAFmd938f1SLtRe1C62tUzuhyR2+NXflGPt7aiQiMPjP2Tg+ZthzD9hsiw7j+kxai9z/p7NqQvhZhxlntKp689gWqKYKMXAh8u2vK69RIJVpRINBSypkq3+vDYJVAhqyh00F+swUtLoQErC7xvcafod31UhZ2/rMlep0Nuh7+QVhkn828mqMGuT8WBZUHXaJ8bgg2B0a9Vj44NMX+jyJpoi6wWRuKGaQijpC+wdoIWAJEnQKhNGy732x+KYprUTD4QA/huctNZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ww5on4R0YH5j5U7b9AdiT/l2nDYooLuHAFfNdlEZ8B04kl7uEMqSYHzqt35V?= =?us-ascii?Q?0e5Qkw9k0u9454QqRFBP0yYJMBKCB92zWJiwl8k474jWEjn5QF5dsT19UFxc?= =?us-ascii?Q?c55sQ7b+s7U/aspwg3JSAbMCsR+4P0pR9vMsFOs7uyR5WodbAuRavl4xNkwI?= =?us-ascii?Q?zzbrQysQ0FnuvZwsCgZp5oWwnVWh8OObfdbngKF94oNbCdzqGhVyUEIUUYjz?= =?us-ascii?Q?fQs/4GAu4nCvQ3giieORM6SSn1QX8Sg2aKjbrWlaUWyl6mo5p3+nYtlzBPiJ?= =?us-ascii?Q?mkL7FafYfJTZNtggbLo9jH2PCt3uoR2f/m7x64ftNIxz1HryPh7AuYrxSwJG?= =?us-ascii?Q?WCh6S7zec9RKw7PNqbwiGfHw1M8XEclrl9368OjlbbA6R+dKpziiilnt6IHP?= =?us-ascii?Q?jaMsWQYxCv21Zimn0XcZWO1mPK2Ge8OGUzXsl/n/XKsHm5kRX0yo7ddtMqyz?= =?us-ascii?Q?QRW819127bmu4Fk+HNnP3FG/VOhVADQziTaYNojv1HciZjwCQ60JwnJTEoPW?= =?us-ascii?Q?wP3EmSWivcaewZmm71oRGVmMy9h0rbsOTZ607KR01ndtfrnsAZZ9UgjUts5r?= =?us-ascii?Q?JEWO1fMdMAp5LSppcGpykueRT0x2Lvg97uYTSdHh9rcsltweVXSPvWVByMV2?= =?us-ascii?Q?F8kLkVqFEiuyeQt7MHY3KJR2FjHRAURqQ45tPFRGn1Gb3S8Fwh98Icjo05QF?= =?us-ascii?Q?NwoY5cePieZn2AaMUBaPGDvm2IABHoOSex3wGH/dXTQ7i7GWAw4kyh7D2K9t?= =?us-ascii?Q?H3HvvXqAieCCy4YEKqa/ihCpWFTjyne++pfglTmPGLoEH9yEL+SHHPWspmwo?= =?us-ascii?Q?RRvd2K4kt22DNYCiW6YN9b/t61G/yE2z+d1ixegItQqqZLF4UsYAHeGorUn0?= =?us-ascii?Q?PgiS6dvlcyoeY9sRZRIpsQVgpFmPCfLSRaEblgoil1SXCYrkfPU9g8MwPj29?= =?us-ascii?Q?zsGnGArTqwmkXOV13+etw5AyXjVH69C4H0Hj6Y09c4nvkVXCPG5fSPgOsnsi?= =?us-ascii?Q?iKGtbQPyH5KGytevqmnVqn88BUAdzKZtI1yAqH2+gQrlOjE4FBcE47vwqQSR?= =?us-ascii?Q?mzDR5pOBeopns1AJRogHhbbWpTMRC5DcPssBTK5qXxWA4tNA2r5jnr/cJ0qD?= =?us-ascii?Q?RFQmjjOPxaDXGXof5QVLJKHShmfHNA7CgxnRnJgc8rRxsLdw/1coJh/2/vB4?= =?us-ascii?Q?3IvKgqKP/9brTMTiItiaoBmmvclLj1Tdpn4E+HsYItbOkVc6+hq3KjGoRsCb?= =?us-ascii?Q?5wgg3sT0MJFkz2H6A1dQk/qpX75xFabTRNsOpLqGwP3Gn8SzmxrXPT1dCR72?= =?us-ascii?Q?NC4JHCtAYCw8ZoCDpb1bl8YHlpbSrp/vqQrTIaZIFrXYcRAv+uGAYSFCaRes?= =?us-ascii?Q?8cqTcPz9Sp0p3+RuWyU+NwzwQ07pjqfI5d7KUPmo7lpiLBUB6cvjvg73SJsZ?= =?us-ascii?Q?UoC4nolDEox3+Bg9ruv76emmxR5MfZrC+jP5XKP8YQVcTp0EHtNVG7ZdMrHh?= =?us-ascii?Q?b9v1QkuFmQi/WVSsNCYuar4Gpjzbzb8ZtkQHuwOlFWVzkdmtvwgg8iw/fKNs?= =?us-ascii?Q?BD7366L/vRO5xR8CnnyTZ4UgFGINSkPf7MalGLyv37KUZfoC/75Wei9egCPi?= =?us-ascii?Q?MK2Nx79Yq1+YEgSZtFwh3cm/OZcjC5aUs0R9LgFeDtv7+Bfozpi55ABat4N8?= =?us-ascii?Q?ZiXoi6uMIfs33W8wqb/lJN82BQ/1cd9Gu210J8eckHle4cV9ikJoIQjd1bks?= =?us-ascii?Q?VI5FSS3Xsw=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8982a2fe-c81b-4854-5967-08deaf383818 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:35:12.8861 (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: OsGkZlVQAWVKCyAcT+QRMOE5tgByBLfp3cmb+3AzK5FeCpS2IfB0OuJhcxhHA8l6zidEnjQLFPOs3SYt5NUj4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB10055 Content-Type: text/plain; charset="utf-8" The upcoming ENETC v4 VF will share the enetc-vf driver with the existing v1 VF. However, ENETC v4 uses a revised CBDR (command BD ring) setup/teardown API that differs from v1. To support both versions in the same driver, add setup_cbdr() and teardown_cbdr() function pointers to struct enetc_si_ops. This allows each hardware version to register its own CBDR implementation: - ENETC v1 VF registers enetc_setup_cbdr/enetc_teardown_cbdr (existing) - ENETC v4 VF will register enetc4_setup_cbdr/enetc4_teardown_cbdr Update the enetc-vf driver to call CBDR operations through si->ops instead of directly invoking the v1 functions. This enables runtime selection of the correct CBDR backend based on hardware version. Changes: - Add setup_cbdr() and teardown_cbdr() hooks to struct enetc_si_ops - Register v1 CBDR functions in enetc_vsi_ops - Replace direct calls with si->ops->setup_cbdr() and si->ops->teardown_cbdr() in enetc_vf.c No functional changes to existing v1 VF behavior. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/enetc.h | 2 ++ drivers/net/ethernet/freescale/enetc/enetc_vf.c | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc.h b/drivers/net/eth= ernet/freescale/enetc/enetc.h index 772f0ab2f8c1..04a5dd5ea6c7 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.h +++ b/drivers/net/ethernet/freescale/enetc/enetc.h @@ -297,6 +297,8 @@ struct enetc_si; struct enetc_si_ops { int (*get_rss_table)(struct enetc_si *si, u32 *table, int count); int (*set_rss_table)(struct enetc_si *si, const u32 *table, int count); + int (*setup_cbdr)(struct enetc_si *si); + void (*teardown_cbdr)(struct enetc_si *si); }; =20 /* PCI IEP device data */ diff --git a/drivers/net/ethernet/freescale/enetc/enetc_vf.c b/drivers/net/= ethernet/freescale/enetc/enetc_vf.c index eb6f8065e1ea..11ffd2083abc 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_vf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_vf.c @@ -281,6 +281,8 @@ static void enetc_vf_netdev_setup(struct enetc_si *si, = struct net_device *ndev, static const struct enetc_si_ops enetc_vsi_ops =3D { .get_rss_table =3D enetc_get_rss_table, .set_rss_table =3D enetc_set_rss_table, + .setup_cbdr =3D enetc_setup_cbdr, + .teardown_cbdr =3D enetc_teardown_cbdr, }; =20 static int enetc_vf_probe(struct pci_dev *pdev, @@ -320,7 +322,7 @@ static int enetc_vf_probe(struct pci_dev *pdev, =20 enetc_init_si_rings_params(priv); =20 - err =3D enetc_setup_cbdr(si); + err =3D si->ops->setup_cbdr(si); if (err) goto err_setup_cbdr; =20 @@ -356,7 +358,7 @@ static int enetc_vf_probe(struct pci_dev *pdev, err_alloc_msix: enetc_free_si_resources(priv); err_alloc_si_res: - enetc_teardown_cbdr(si); + si->ops->teardown_cbdr(si); err_setup_cbdr: si->ndev =3D NULL; free_netdev(ndev); @@ -378,7 +380,7 @@ static void enetc_vf_remove(struct pci_dev *pdev) enetc_free_msix(priv); =20 enetc_free_si_resources(priv); - enetc_teardown_cbdr(si); + si->ops->teardown_cbdr(si); =20 free_netdev(si->ndev); =20 --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010009.outbound.protection.outlook.com [52.101.69.9]) (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 80AF63BADA3; Mon, 11 May 2026 08:35:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488532; cv=fail; b=dhZY5aZFslGR+9WqwtaSBMuSSehe6+YF06F31jsJiFVQKR0z3f6ywqN2UKnC+9LvM56/4lzi9M67ErtFWhJQtwknEsOCGHJqCdCCjZsOxSM79PcN0QAiGeAoUP471XYlsrkI9njysPWkODABAzOozL+YHQ9lDKOfFDZvv256NHM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488532; c=relaxed/simple; bh=oXWzqgVcMM6KbAwXtV8X/S+zDAcYxjUS56Rp9trLc/w=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=i6Vstm5W2aFXC28M5sv8mYU8m1vNf5NLf5Xe5/g+2teKWC85SFxRnyo+0eVIJNms/dEy89Ozli0ztd+q1skyJYwyoSPFT+GNs8Sp5NMWeWtHMt9AvzyKnzOwh1Ner7jOp9KEjAltAvu5lzgr7QZch/ainWOvcawXd3XfCAoAiXc= 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=B6jK/vmT; arc=fail smtp.client-ip=52.101.69.9 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="B6jK/vmT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ClKdV0r+qTh2XjzzJVKTAvy0ecSFrDljoPDSGKf6l/7/2tzxIjUTFLE1Ri8FE5BMNo/a8uWqNgTxatU7RpkTRQQtW04LfDPBclWct4VdqEy9ngl8pFLbDHwN/lTES2ekX1wLUOlJS0CxbH8gq+7bhsklYymCTdOi42bSZRGiqmmsDWj5oHzRV48D+1ZrWwfIdP+kDFwlb1v0Q64xXXGF8Z2+cUAwH+pR1Xa5kyzeCebHq1+2gVPO8Ep76oGqsklCCRj4E3DZKo6VQKpvgHBRAOeM8W3aXXtpIc30qlGGkrnuZxM6XYzTSCm+elI8DYHL7P/5E3BYGiSSgLz4/EEY2w== 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=VOpJz3h9/ae4bMNWurlM+uGnxVbcBmIwnUL1Yv309Pw=; b=DE8PHnIGFDTBIARvGnOGGim2yfLKaPv0ykjehdjBmli5HbNL5DeiQYx8qm5YGAGdNB1lzGBgj+Bney4TqmeJQYRyoq3He1Zy3hCDUtCQ2YeO5hXtm89bkoABkboH6G9Rr4jrkwwAVmjR5VbzFr4tbH6xEbD2jbiiMThuzvwTuzxmTHfmivDqir94Dh9vP8frlMcK/aruIkTwVlrHsHigtLbUr62728Wz7aMOQECAGjolYmTSvsOWRrpTTMO5NIsw3yxkqjdcqSRx+KqbchUnTA3dVrrGYfhgqrf8hfenIEqkq8VZn4LHyziPoOcsUbh6mjZyj4szaJjXId1Ne9uonQ== 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=VOpJz3h9/ae4bMNWurlM+uGnxVbcBmIwnUL1Yv309Pw=; b=B6jK/vmT28z2K2snXfcKCk7po5hn3BHO7rGifyMDR8rTfY0IXsdxt6SQ/E5DINrCq1HaIEfiUCq7+/S/HVzb9KLaVqrSYdi478f5cuMg6mDNe/X3wo2uH+LiTC2RFpSQxfNOMWMEiDy1RfdpQRqg87kUUXMDSri3CDt2YCYNUT+hm65jH4F/r0Q05sweAJVcvNg74kuUKUFIA6qFSteVdrbNq74RzFdZ6tm3ulH+Dr8BsnpMzT/4U9YUG4ORMSm3lSP18M+TcmEHui8tDo/u/RRYFwO6Ifcer8M8IIFp17KEWIrlAS5mYS1eTQqYRBVPlxIdnkzUX6vnGfUOX/a8aw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by AM9PR04MB8322.eurprd04.prod.outlook.com (2603:10a6:20b:3e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May 2026 08:35:16 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:35:16 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 11/15] net: enetc: add generic helper to initialize SR-IOV resources Date: Mon, 11 May 2026 16:08:01 +0800 Message-Id: <20260511080805.2052495-12-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|AM9PR04MB8322:EE_ X-MS-Office365-Filtering-Correlation-Id: e6d53265-0322-4522-dec7-08deaf383a14 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|19092799006|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: 9e2Ag/iMtW6KFgiFE7SkXVEqksZ/qIucY6oF29yNN11603q2osyR3JxLe1j6lPlYpjrnzVCTKuJ1xOPgivlW3V/qbcfK4UTYDAu16jzXao3lp1zaEiPUy5VWYJOp7GPB+YAolDa8i1lpidOyZ/Rrvc+xfr2NrbRk9fTKIc6LrHmp+uGm8E8c9cnNxm2IQ5O7ZGohPJai+Ffp1k+Q8knAKjuSU+0tWSQlJOYNzK7E9BxZxBAyKLULWxvwAvh9021wiVJszalOaomgEFsu5X4f2goCZGQcE2Y3+XPxC5Uhx62Hk3jlyoRwfu6+YBU7c+4vsck1qcsrKlsXTQOznEI9sjeGOc6jrUa4ae9KWnlfXuOJRKGkspsDiX/42pVelDOwFkoBAYT1R8Q0BfovxN4YGSAoqq+WyBAFyqu3gFt12jb6nUbgN5FvudiyQGSd3NGTUWTYDlz3a6p+XILF5wpwQfPxtzEbv7lnifDPlYvgpN9Bch1fudqaNL4WgEe+fJc53lNkwT18AePEuSKS9FsaL4a0dzFHezgiwlv9nXjqYgsplyuiwBrzTMfoZbAEpiw60T85OOh2G2HdSxW4SlstHJN4NT7PVsHax0veig/2/nIUcy5ODO2zO39J9l7jkW0f/n5Hu8RHardh3f9eN/uGduLD0dwk8LGqzpuJf8o9rYBXXXQkRWTmZTc+lHNpyItt+C07Gx7NUboK2znXYwlh04K6WaZBYKiaH0qWO43DNyD4r8fwx/uI85lM5I6woLXH X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(19092799006)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7fINVZ5lF2zpkOkI3Q155tszXA1XYrCSyHZayDROXFLz5ekaBHtmaXUSHgG5?= =?us-ascii?Q?J9AU99ESK0y3tUodzFI7lZJy3w8sSUbbKSCDcmPPWlgZft0rimn+fevXXzM4?= =?us-ascii?Q?91rTjZlSnmC+S7iV3pVzMwpWxuCXzyNWnCByIyTgOOMsjxVmusFJSnxxGgJ1?= =?us-ascii?Q?tj/O2n/BWVWhd2G4+gVttX+JYDj61NUPWGK6fGQ4BZBvSoMNbrJa8nSi1ah/?= =?us-ascii?Q?kEJQGgY+ETmQkgpc9P9CrP4aXY2ESobNQFznqtiDI7C/U4JVUzv/SPRVrOmM?= =?us-ascii?Q?X8te/LWznyxduyDlx+ysENrJqeafvzFPsgHV66AMr5bNAhY8dHPd2P+71Ixs?= =?us-ascii?Q?HZbayuF2tb8ZTrw5sfgIKW8tsi0D2d1v+Aa56DM6DnIiGa2b1ijdVHt4YSwF?= =?us-ascii?Q?mMZg2cdSwje2CHNiLSn7mBzicf4ZIWKAYdF+V5qmAsvHCVWxA+EOGuh9aezm?= =?us-ascii?Q?KJ2om6tN6yOYxXd6VNEJSHBmTxHMf1bEgrSb5KM0gx2yh9VZbKlx/qGadhh+?= =?us-ascii?Q?ltn1vm9OcHgb7T/BIomB1G9uWs+qYDLVcOzUO2K6DvxfmJ1xzxiFbQdpG575?= =?us-ascii?Q?orYWwVimmJIjfOoX7LkliKSqkoMvXrHX3SzcxNi9frSHh3d1ByNjH9v0Kela?= =?us-ascii?Q?l9PgZKXT1Rz8HVLRPjOQhtSYQqZE79aOqyXwK+PQFkxAIfbdmXDMvFPww9SI?= =?us-ascii?Q?WYtrYkyFQBBPZl+J1R/HP51Qr/rx4Ci/XlFYAzWW1/1hLwRANJIIkccd3vjf?= =?us-ascii?Q?skrdZ+RtcXgZ8+mwDTGHAQeYcwkdOmQTbwhIwXpavoctUwwww8qxU8m21X49?= =?us-ascii?Q?CD+SwCnvwa5Q8OcRs8GRW0np3Ud1AzSkPgOsL4MFdDhqaPx+Nk0Kprs2hQOA?= =?us-ascii?Q?JCAaviZ8Zo2F466Qt6n4JPmHazqqezmT+7AK+sikrsXLEssvk9ugIakLqkdz?= =?us-ascii?Q?IsGVwIKuq+UTI6Uqr9SZuaqs/4o3NkyWNihiid8+VcqtrxbGE1aEA8cLHtqd?= =?us-ascii?Q?9T5GvM+gs//aDTSlRjmUhTk6qzE3kDpLp1axrafR+MBxOosBusIs2GR1l0ys?= =?us-ascii?Q?5fZ35NBIy8CbgQlalxlkiYz4MRykrINvRfXS1KM6i3ByRTJDz552D0naNVwG?= =?us-ascii?Q?dRGfUfg8FjY1zF9BiZr4pJpwrrxukvpNPBBc084gbHo0a0fw/uvjMc6U6TAc?= =?us-ascii?Q?YeLI8fbBPO4fBWFJDn7IfTylzZXVjKo3SV3UEu2JLIAOFNMIDtTaQ0grzzHO?= =?us-ascii?Q?uEAfT8xzgdXtccpWT6SVp0w9XFVM2PxBnzlzAXRzJow4IqA1ThKUYBLFBnnu?= =?us-ascii?Q?Z4QgrZlqjfeM6Wds71s/om2VJaj7djGJdsaSSSe1JYK8xULkyh28d0U8ekL1?= =?us-ascii?Q?VGkm61lWZKBAbhFTxSBOKQAzrYqjMzHF102h4/LHsVQnC20WQ2XTllyO/7aQ?= =?us-ascii?Q?3Qurf1Zk0aRj+4hO+nHs0xwXpLCR/GXYQ5QSulu5bFQNvgvzDojvIs4GaGoS?= =?us-ascii?Q?rom4+Dx2kVD6WVPSaPuFveYIRgnPE07FEBLTKLW782pwwWbC7tqcmCzuW/OM?= =?us-ascii?Q?28wQdjYQ3Sb2kYwpuA7QDCz13cY+doQ5u+OaUPB0Za/CfUFlyI6TRkqV3Xzy?= =?us-ascii?Q?xjmKOXMz2vAc6p9DSJrZuW2Jsj1blwN0KCeKAYILmRNUgEz1Dy5v5gVUwj3P?= =?us-ascii?Q?eR7lUY1pvRf9yALX03rhCoJx4g8eZHvleXV1JXgcHC/3OAeLOy1kG1P2djwV?= =?us-ascii?Q?q5RrnCzyCQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6d53265-0322-4522-dec7-08deaf383a14 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:35:16.2478 (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: NLznHZ2yB21x/HjsQQpyy7jeSKmD6jwJXPZpchUojYRGIWihnvt8lY4Ya4KIufx6LmkUPmlnCpwFlBCNEYK7hA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8322 Content-Type: text/plain; charset="utf-8" The upcoming ENETC v4 PF driver will support SR-IOV, and its logic for initializing VF resources is identical to the existing ENETC v1 PF implementation. To avoid code duplication across PF drivers, factor out the common SR-IOV initialization logic into the enetc-pf-common driver. Add enetc_init_sriov_resources() to handle: - Querying the total number of VFs supported by the device via pci_sriov_get_totalvfs() - Allocating memory for the VF state array (struct enetc_vf_state) The implementation uses devm_kcalloc() instead of kzalloc() to simplify memory management. This automatically frees VF state memory when the PF device is removed, eliminating the need for explicit cleanup in error and remove paths. Signed-off-by: Wei Fang --- .../net/ethernet/freescale/enetc/enetc_pf.c | 15 ++++----------- .../ethernet/freescale/enetc/enetc_pf_common.c | 18 ++++++++++++++++++ .../ethernet/freescale/enetc/enetc_pf_common.h | 1 + 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index b126a624e6dd..13a1c9bdfee8 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -868,13 +868,9 @@ static int enetc_pf_probe(struct pci_dev *pdev, pf->si =3D si; pf->ops =3D &enetc_pf_ops; =20 - pf->total_vfs =3D pci_sriov_get_totalvfs(pdev); - if (pf->total_vfs) { - pf->vf_state =3D kzalloc_objs(struct enetc_vf_state, - pf->total_vfs); - if (!pf->vf_state) - goto err_alloc_vf_state; - } + err =3D enetc_init_sriov_resources(pf); + if (err) + goto err_init_sriov_resources; =20 err =3D enetc_setup_mac_addresses(node, pf); if (err) @@ -952,8 +948,7 @@ static int enetc_pf_probe(struct pci_dev *pdev, free_netdev(ndev); err_alloc_netdev: err_setup_mac_addresses: - kfree(pf->vf_state); -err_alloc_vf_state: +err_init_sriov_resources: enetc_psi_destroy(pdev); err_psi_create: return err; @@ -980,8 +975,6 @@ static void enetc_pf_remove(struct pci_dev *pdev) enetc_free_si_resources(priv); =20 free_netdev(si->ndev); - kfree(pf->vf_state); - enetc_psi_destroy(pdev); } =20 diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf_common.c b/drive= rs/net/ethernet/freescale/enetc/enetc_pf_common.c index 76263b8566bb..60a330ee03b7 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf_common.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf_common.c @@ -435,5 +435,23 @@ int enetc_vlan_rx_del_vid(struct net_device *ndev, __b= e16 prot, u16 vid) } EXPORT_SYMBOL_GPL(enetc_vlan_rx_del_vid); =20 +int enetc_init_sriov_resources(struct enetc_pf *pf) +{ + struct device *dev =3D &pf->si->pdev->dev; + + pf->total_vfs =3D pci_sriov_get_totalvfs(pf->si->pdev); + if (!pf->total_vfs) + return 0; + + pf->vf_state =3D devm_kcalloc(dev, pf->total_vfs, + sizeof(struct enetc_vf_state), + GFP_KERNEL); + if (!pf->vf_state) + return -ENOMEM; + + return 0; +} +EXPORT_SYMBOL_GPL(enetc_init_sriov_resources); + MODULE_DESCRIPTION("NXP ENETC PF common functionality driver"); MODULE_LICENSE("Dual BSD/GPL"); diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf_common.h b/drive= rs/net/ethernet/freescale/enetc/enetc_pf_common.h index 548323d29f36..ce499cfcce30 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf_common.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf_common.h @@ -15,6 +15,7 @@ void enetc_phylink_destroy(struct enetc_ndev_priv *priv); void enetc_set_default_rss_key(struct enetc_pf *pf); int enetc_vlan_rx_add_vid(struct net_device *ndev, __be16 prot, u16 vid); int enetc_vlan_rx_del_vid(struct net_device *ndev, __be16 prot, u16 vid); +int enetc_init_sriov_resources(struct enetc_pf *pf); =20 static inline u16 enetc_get_ip_revision(struct enetc_hw *hw) { --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010009.outbound.protection.outlook.com [52.101.69.9]) (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 4BA8C3BA241; Mon, 11 May 2026 08:35:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488541; cv=fail; b=VDwzOFYqF4PhWAaEZBU09PYQOOo0FDYylgJZ53g6OSgILQVD2a1z44uVGLRLl/mhi4GoHStOZ1LnDdVvRK2POe3wbaBIMjeYK+OqXogPnz3+mttB2qkwxsUUXsljFn3Zclkrcs6Hc+YBLnS7YKyRsPJyIpbxvRaHfkq1bAgLNHU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488541; c=relaxed/simple; bh=4N2KyH7ul5KwOj9Zq1fVz6tOIyt511ThHsrBX3yqolg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pPDWOB52BcxjzMVy1892aTUts4Vih6vmQsIqjFpVe8uOVa6hjJ9vTNkVtm+rapahXv6pWt/gbd/pTo5uKn6tJh8DFkrdaKAyZPyxtJIx/2bDjuXfnZHFrM25/cNIajbc3FBo5/ERsrzdoV0M7GtgstzsZ54bQTZGzt3jZMrKyFU= 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=gqij/QNO; arc=fail smtp.client-ip=52.101.69.9 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="gqij/QNO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UfN5hMn3Y+Y+QsdvXLDwErpgUZJHx8RjFYpShw/Ufhu/bLe8FFUh+KaKVfFY5cjmXcnJD+JFnoxWozU+5/JiVOSSYiQR2Hsplosx+kAcLLgLdqoDHppnBhHxpK/3BbKMonHmUhaihd0H4CSlUt9QnKfpcAEYF7vzMJ7gBOziTQVKX23mOmWxAK7bW13PwzxfNATvzEVgGkw2ObKu3IU7RkyxmypcMCx9I6o/BBBlvC+pws1mxNHcct1F45scQ/D8M5tSAAczi/cOG00nVivxUNRbItz9uekCio/V5aFwrxlW1OrOtYWVb8d5uC8f6BO9Cu4T4i+WFuxKSKjfqguGSw== 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=FoLVECL3rwQPuzL+C+a4C8j7/pncOxOZT8bciDhgx3c=; b=UaSsGs9FqpwK9IArjnMiHcnuqjFvr6diwZKv/xqB4c2ijMuxp6gUlAZ7/Id52Xjf1p70uihfu4DuGhwNY3BYqM0Zp8KJEQWN71FGviVLwnHyEkWMZoaftjCNZh9XkM3r8Lsstc/F47dmi2ItMW6haVaHRMCOWxM/gZDFxwIKJ3c8qi9tM6FbKilikQRrsmzetzh83L/AsC9JchSU63fSDhWGQbGUS9XIEROYViK03oeOsS7Ceurjw2zJnbC21d9C9gsTEnIzctYAlrVIzbmFbTSLLgaiV62DLkgzBXNqivr2P0Re1pE5BD9FSLV8TSayut2JNAEIS/wVffKrn3Ikxg== 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=FoLVECL3rwQPuzL+C+a4C8j7/pncOxOZT8bciDhgx3c=; b=gqij/QNOYtsqXKHlIimUG/yuoccR4kR8QqdNLNvdVeZr8ZKlTJR9MU/h6qgDTXPvYm1T2qRarKHv4I5ogWBcQOlfYTtL4mS9BnYFpfb2c/FM4I38o+JP5yrLhJEKekPX6NjKRWoOPdWY+AGlXfGmRhwGFvHgDIOAXuDnZ8vd9fgHmD+wsratR5AeWCKai89sZ84BWr8rA9IVqb011l6z8YYoAOn0G2Skkg5Q5+EBLWKo8XxKwMCBNiNMqrvt6mvnSe5yBXLY6k8vTmNiPXB+m3nTo1f5cvtbtifhpjMFtD4xmPvD4eqODeyzvO6AxVrtqQg2Yfwlm9foQLbh0z278g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by AM9PR04MB8322.eurprd04.prod.outlook.com (2603:10a6:20b:3e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May 2026 08:35:19 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:35:19 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 12/15] net: enetc: use MADDR_TYPE for MAC filter array size Date: Mon, 11 May 2026 16:08:02 +0800 Message-Id: <20260511080805.2052495-13-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|AM9PR04MB8322:EE_ X-MS-Office365-Filtering-Correlation-Id: f2a5cefa-76b9-46a7-3f98-08deaf383c14 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|19092799006|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: Z9F/NP3Gvqj+nryKrQCsaiyckexIm/C2l8E2aGg7F/+gyQXLjLLt5z9J+0n8nCT3FWvCfTldhs4uf5HjAyjKEWORPFtp+kytK4U2gHyDarGY9yJtH5lngskoV8dqmLHVD28voyqgNSt4hIYs3AD8Qda0LsoGjus/WJHuUgOLcRBUWlMZ9J9x8EBqIrrBcfdc+DRuYW3dTahSpOCmwMzcPtSWnelqUarBOMt2dUQeTQy5+EaWqfZ6a0WzoZfZyXECl6h/kM26Eqx9TqNEWeqolrqxud87AcdsNBgMG9SWlFDKu7UT4PhLN2g7sHDyoeqOm8JhwSMG2325Jw99LGn1XTQUjL4pmoazxgLTy41Ej3oNbh6xRZxQwLajLivZZ4OxOx5JM8ZLZD6CfeqrRcp6COzC/VjRAoOZg9qgBXl0YlXZpAxkqZ7waLACPCCDmRCGTX3Bv/IGdNZ/5LAVYkqEL1o0SPxKZfd81v2YTORHvRtJmwlyPa59D1d+tU4hyNvskemhFfRvMNPqeY0c5vD3zm35rDgP8uElg7ASujAP0+Q9u7O/v8tTcx4tvhlw7xubsolmwIWv+n/QDmigFMWKxNwxW5a4bydne9K0B4UZFMXu9//yLC+keMrPHIVBdmEasO30JO/BGQr8J2E6geBpW03dz48tuzZLpITabeGOCOHGYq55XAcMHHT2bodcAh9dL+scXp5yM/T3Q/N5ozJNth6KqG99jgAxrcz3r3f9RCoxcqPTc8rnUl/qVmGF2CFE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(19092799006)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+SERXcC3Ixmh90n/QayjTWHrX+yZ6T45yFmThQYZNhdZXvesbmy/aggFzKDm?= =?us-ascii?Q?5eReNDMUdgogYzNMmwpUovCfZuFDbX901HGqwU17gsnfD7kRuY3qIWH9v/ZI?= =?us-ascii?Q?mdMgPyQYjmaikp8s58vFmtAPk98yirrfbIgz0TNkRvMrLTA/GjjJ+jmc+FU/?= =?us-ascii?Q?sj7/7HGWrsWppUGHjFZJSPtlnpen8xFmQM8+MnY0n1iL+y5Nygux6newQY+6?= =?us-ascii?Q?p9kqvNNCKGMN2ihAVfo+nHePsKrT+X1QZXxZjnrE5Teyq9wr80g7TVPBWmDe?= =?us-ascii?Q?0MIm3smV2boAOHdePg4KTpgtAbhm5l5pTUvwFrpbIuk75IZvZ1F2fRpjnfIG?= =?us-ascii?Q?lXflw64lcZxpERCNP8jAm4Y7ax+ch3YsoTOFYu2E6eZuqAewnvrVfwPcz8Tm?= =?us-ascii?Q?s6gFkbpTjtDPKPxNaSord3WSES+Jv0jFqskg4iMesA71V/i7Ta3c4PLyax65?= =?us-ascii?Q?nxD/d6wxha1KH6ZEZY63FhEFra5bgQio8ib2C7UfzvhNuZldFV1hnhsHxWeW?= =?us-ascii?Q?irAx5Cw+R6IHglNrvpKSVs6NlIpECNLfd9IkibusvMy4SZWQDrWw/9s7hKwa?= =?us-ascii?Q?rvDqeujG9NZWEQfvrRP/68KqZJUo2npXJJSL4JOl81AMAST8ax6F6uHn60GU?= =?us-ascii?Q?jPH5cU5JZ682bNrCH++ZNau2dXmHbSONeDcI9mngyoQQpR9KMFtRsEV7VWy9?= =?us-ascii?Q?gYIcXh1D8dJEDKZ9IbnonWyMK+cpaOq+kydeZuwLWapM2FaoOcs2jRsO7OhX?= =?us-ascii?Q?z4JpMcaZ1jTxWrOSZ44cpA2orNmBKfoi+4fF2gJ1Z7yxG20iND5KUzT5nRIG?= =?us-ascii?Q?uUVsHw4prr3l5BNs2CcRIXMY592Mra0Z/5iCb3pQBjqYXJNHwOYSW3s45Kev?= =?us-ascii?Q?sRRNiLPoTlOuSUHiTIq7O0OJG6BS5pCpHzOy+cR59wAqSTvVenJ1tE17N5EF?= =?us-ascii?Q?bFZNnU62lEXAsMk4nRCpOolEkO122amFT3k05nCGzK0EXoaUsP/myT9JJ66k?= =?us-ascii?Q?MKk1BuGmZffhYT/gQWSqG1zQQu7yrreHlm50FRnKH8UfnZ/l8MCRhcny9/cc?= =?us-ascii?Q?herEglibtUjytC3tLYbHg9wLRNWE/A1mVgOIgMfvcw6h0HLgy9Mkyk8C3o65?= =?us-ascii?Q?MtbBgXFHOwyjcWrqR9p8LaPyZtIzKw4m/SFRkI2lp0v0J3/SUHRcgZ2CVVL5?= =?us-ascii?Q?XFhJUvj8Pm70XavqJhQPw2f9+F6kjRW/2UnNies0I0tQZrdD4woY+NsiAw/D?= =?us-ascii?Q?vTdOn2peiwlswZmOJKgAwQIu0clIQ+YqPKqK0d5A5juYjZZxiPCjTiqY34N0?= =?us-ascii?Q?SQmsD49ip9NSP8FN68VQeP4D03G3F/pndnyecDvjDWox967c4VEx+1Y/4Lqw?= =?us-ascii?Q?9hM4qeGVaOwSaW0NED6SvQd9Kbjsl7J3F2e6qAo2Vp+mcWbRtvqw6OWEOQMq?= =?us-ascii?Q?L+JD4xyevQRMZCy91sapAX9/LCOELyIEGHeiHscLzbUu0Fa8V7s065CcsECC?= =?us-ascii?Q?E9/DiIolyHn8ItEATEhxyqpJgcNPTUyDuYlEmBEYJywff8R/PvMVJeAHdHdn?= =?us-ascii?Q?1ssamWKKMcGR4HwOnBuokZoOEarJ1YiORFIVw7F3KUWhgToWkyaRPgU9uk1M?= =?us-ascii?Q?/IWHsiGokBA8Amrexkavy8G0mEGdwuTF+mz2jRXRyn+kIb4y6yeB0WAWK+IG?= =?us-ascii?Q?Tqvi7TgbvKQ391ttlM4sku8DSFiCucEdrYETZAbvItOgZujm0mXyET62r/ux?= =?us-ascii?Q?iXl+TQTcRA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2a5cefa-76b9-46a7-3f98-08deaf383c14 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:35:19.6976 (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: OC4zf2LpLhfyGNcqPkB9iiUPVuKniVqoZfGtEO5hrxPTfzP9gLDerUdiGbURlvgfGcIXxoh/YWEG2WNgkiMOpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8322 Content-Type: text/plain; charset="utf-8" The mac_filter array in struct enetc_pf is sized as ENETC_MAX_NUM_MAC_FLT, defined as (ENETC_MAX_NUM_VFS + 1) * MADDR_TYPE. This resulted in an array of 6 elements (for 2 VFs), but only the first 2 entries are actually used. The PF driver maintains MAC filters for unicast (UC) and multicast (MC) addresses, indexed by the enum enetc_mac_addr_type (UC=3D0, MC=3D1). The code only iterates over MADDR_TYPE (2) entries and directly accesses mac_filter[UC] and mac_filter[MC]. The extra space allocated for (ENETC_MAX_NUM_VFS * MADDR_TYPE) entries is never used because VF MAC filtering is not implemented yet. Remove the ENETC_MAX_NUM_MAC_FLT macro and size the array as MADDR_TYPE, reducing the allocation from 6 to 2 entries. This saves 48 bytes per PF and better reflects the actual usage. This change has no functional impact. Future VF MAC filtering support will move mac_filter into struct enetc_si, allowing each SI (PF or VF) to maintain its own independent filter table. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/enetc_pf.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.h b/drivers/net/= ethernet/freescale/enetc/enetc_pf.h index 731d56bad5fc..9fcf1c58d59b 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.h @@ -5,8 +5,6 @@ #include =20 #define ENETC_PF_NUM_RINGS 8 -#define ENETC_MAX_NUM_MAC_FLT ((ENETC_MAX_NUM_VFS + 1) * MADDR_TYPE) - #define ENETC_VLAN_HT_SIZE 64 =20 enum enetc_vf_flags { @@ -42,7 +40,7 @@ struct enetc_pf { int total_vfs; /* max number of VFs, set for PF at probe */ struct enetc_vf_state *vf_state; =20 - struct enetc_mac_filter mac_filter[ENETC_MAX_NUM_MAC_FLT]; + struct enetc_mac_filter mac_filter[MADDR_TYPE]; =20 struct enetc_msg_swbd rxmsg[ENETC_MAX_NUM_VFS]; struct work_struct msg_task; --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010009.outbound.protection.outlook.com [52.101.69.9]) (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 B1BB73BE147; Mon, 11 May 2026 08:35:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488548; cv=fail; b=CIHVCVRLGR5g2TUzI6UzutOzwY4pYyXrvb2QBcOm37ueqnKlUVU4895Tc+wOTtAp8LUxHcA6aKnt3w6hMacIdYrptFrHHU17g0cDT5soI1nBDy6Xms4fFq4PQnaw4gK7mR1cTxTuohVuvqNe6pudyeERe3Fw373zkUVEN4tr4Vw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488548; c=relaxed/simple; bh=ESqqooA1FffEJOOPbLxlIkePuLTGG08H2KzPEj7EBbU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=HuFZKj3l24DySDOvKQaAOyBAaXIizxWv0RzdMs2TWh+aXnT6u+ZHqSCdJQIbodSH9AVy76M4HzwAot9DWFo/JwORFR/HKv1UR1dQIHvatHUFwN+yoSTsN3sAHk+X/4DmP6hNxo+26E2E8T5yN5cV7SI6iCH91ms0tvy3trcYj5s= 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=J1zg+P7S; arc=fail smtp.client-ip=52.101.69.9 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="J1zg+P7S" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=so0kWRPBmjHfWeZLkNFYTANt+po/KTdusoTbQUs53rh/YEnToyf0ndKG1pu+oTAMOq4mLH5kLOgRh9r6Jf7vZ7ibTtlprI+d+p/T0QeZB34sowp/w4RpLlvErsJy8UhPYZTSohKW7bf0Sb/mp+nWTYRvHZLq+R8FjPTCSyNZjbo07/2F+E54oNHDQQTVk+8fuOYYeu+NCSLRRHbuG9/WEPs80KdW9NeeFjHD5cJU8UwzzOLh55EAbqPYyN0fNZU3YWACot5fbd9XdSkRFBexpRk08IIdYRzXEymqk9e1KGbOTtXk6ei0YDN4FuCs0hnRWOXDy4gu8VOvrvT7ZG0P1w== 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=+xbScWCO8L/JN68HVfU8YguE3U2jSN2n1pAtYriWRsY=; b=a/oToivPvM/wdVRQKbNYroivxlyP0w+hxKRjJcV1LUlS6nB9kh8IYt/Nnv1jmywNctlGr01XrXNZajvVOhMTOLSaMdIdDsoflOpfPnkBvhHQfLx3kq7Io4v1BIgo8xu23LnUtKoqByOXhaBVnt+BxxR7oVooFQQX7GnJgRWgEDh5oq6tC320TeL0BlFUa+niNGSoyqlP4PWGn6VHkghmKqZkgUN0d457+CeyQS/NiI6MqgIBSDzsXxARhJ7l1GwzDZustS/cft57WpApJycqr3l4hi8ysXYN03ad9H0V/vI3ENrznNZlYYpDAZgfP3yofZWgVXLnw2uD0c1K+yD36Q== 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=+xbScWCO8L/JN68HVfU8YguE3U2jSN2n1pAtYriWRsY=; b=J1zg+P7SO6L7xsSWTSPI4ehTOwotjxU9gTwrH040jw/ryB6XRlMb3yrXjU1tmrNbTMwHyniL85UyqNoTYWYe6fT8MFJjm7mfv44KvgU4M7uhmbpWV7AyjQ2tW6p+2TiiLGZT6kxfJJzWIukpz4bMr8/vt0rWR2O1YdzpJdiWKkqEiAXPBbowqf8YID3xFccIJzZ/Kiv+SXGWK/mkjUdxKNTGhZRlJffBU5jj0ZvbL11Z7sDJPyNAJ0aMaYhGVK/b4dbXiouaZGw6GjuhuYpHGGNDoPDJ/VWF9AhgjfAWS4V69MjAsTwtvi0tgfFn+8cjmDazp4Er/CLaClmySB6mWA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by AM9PR04MB8322.eurprd04.prod.outlook.com (2603:10a6:20b:3e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May 2026 08:35:23 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:35:23 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 13/15] net: enetc: dynamically allocate rxmsg based on VF count Date: Mon, 11 May 2026 16:08:03 +0800 Message-Id: <20260511080805.2052495-14-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|AM9PR04MB8322:EE_ X-MS-Office365-Filtering-Correlation-Id: bf5f33ce-f0d4-400d-a41f-08deaf383e26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|19092799006|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: 07W12L7WchsXlUz0bLyqA4EXHeiC3pPPW8KCWAJynHCst3dVg9M8DwU6pM9pQyOuCgHUuEdmdaxMT/LkDsA3j0/I5KQ+XubBBk2FDGmquw3GUozUpRyGs/Fpllz0z79+QmLKR81ubNbLywiU7JN72IGV8kKAyFIkJthEmfLD9kJzNYi8sfHT1Dgyzknhe8ZsfeQ1s0aCEyDr6qyzJKJ98Hh+DxtlJB9Z33V+/XDf9hw8OL5IlCLzAmKcZ06EOOFeOfY+N0gflIH/CWzs1RjT/5UFCjfYnHf+v/u2iVpUDW2hM/ZBqEMw23V/7avP4YPEvIwdXfxdC2vEB6X+v9b6CQy+DyhFVgKyLaXapFOICNkCrb63clUpmoZFJ9HcNplt4GS01LssYeCh7HdtYl9FgqWQSn/F8F00BdV/0xt3ezoweEJbvi/oOmYBYr+BlEh255SZ3jOp7meB2OwOuH3qH+2nSHkeYSJ97W8bMVDP2NNb7qYtLK5oPcIDLmfKeziheYbTco/UJ/1EYLST910OkvfC5lyG8KnxH8Jzd5N8bFErp6wskahLZJJLku/9kgGX8S5POtJrmQ1YTLFqZQFmzoH26B3zhe8Vlbjb+sO4f6ZXIM8UZdqeLokpENdzzzsRiGTQLPI8w3zT7DcUgkrucWbW2oAgdEmpLFNS7fo65C0aVuRBUMT55EUVb9wz9dcUTeOj8eHtkhlaRZ4vwVMLx5/nm9i9MKwP2cpC5a2HFuTJPrDp5Wxp2kix4JcvEEXe X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(19092799006)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4XaSkjeoz9r908z/TvI2olXUmqJ3E5Oa8LDW8OzcYkGPurg30K83jIH0LkIL?= =?us-ascii?Q?Twgi7PXHHWI0ukH/vz3jVjxwEaXj/wpfXxnKJ3VCIBW1Yy3ArrnV10ExPeNe?= =?us-ascii?Q?Je+P3LOi43oAOSdTmxrKVSS+h+y3BnG/XbdtvTOJlVKuX0HC0Em601NY7CD3?= =?us-ascii?Q?+WFHbLjCy+Flj0AT5gjMVzgOWCyyIaDMsIPpCUX2vG4SejeAh0XzcYq/Ko1O?= =?us-ascii?Q?WS81TJwRvOciQUXU95bfNlqYSQ+THiNDzoRww4IKyzeFYTzzBK4TfASIC+lk?= =?us-ascii?Q?KviZMw2ndC3kLY/+PK6aHhxXJaMw4gywwCl5MBV715NTTiriDqxTlV4+6zzx?= =?us-ascii?Q?J2co9ddw2dLEPKwoKbau+Px3a2lm3hT9jjbQgkcLKb9y8CNpHTZnaqM9F4LS?= =?us-ascii?Q?iT+PVWHhJ7qhW7GgLrMPmTYxnL8i8MnmOkNNalP2V96wmtKZhHWtUm6HhJL1?= =?us-ascii?Q?hephAkEF8heYQHZRBrINfQlZas1N+DmT1pN6gdCOJKH+Z5xcpSmX9w9ig5Y/?= =?us-ascii?Q?yxlHViscXgmaMOl8rOY8OfSyuwnZRel92kJUpYPcvldjZMCrbRFtn99LaB5O?= =?us-ascii?Q?+bE0XeSkEFWA8MCzKHZXbG8ioPP1qdWwEIKj0R1n/YqDJMYhQWah9U6SqZIi?= =?us-ascii?Q?Lg1KMfKfEctiKIRw7qSsZy3keYC/Q/AYmKYUrI5rjl7bG2k92PUZPemwcBeh?= =?us-ascii?Q?g3zEeFXcSIVIP5542bdy/X4BYv6nEpq/nK8UsJAH4KVFTfrpEoHN99grFhPw?= =?us-ascii?Q?v3Y4pkECe8uWfZ+g7yaGyh1dewJ7qp9vqEWESUAGFSl/kmfT0zx5nuf2iXvK?= =?us-ascii?Q?TsVkuKxt7Cwwbu5uv4zy77pxIXQbvqVNZ22x/jjxvIsIW1tQXL/7onmkEsv/?= =?us-ascii?Q?s3rwbEDWI6ZPP0jpF1wAdT/cdDtvIEKX2nYb7RDJ8/0D5uu0J+ZCBKsi8AiV?= =?us-ascii?Q?DKJpZBvdZB6DJjC+LI8a0spsGCoHxpKG+5oWRGkf+btuaHBUJTJKm9cr+Yjm?= =?us-ascii?Q?k86dHtrNtiwahb5QzWA91sZN6Ck0YdPD7OEIGjTkbva1XqLoU2rwhgExtf9F?= =?us-ascii?Q?5DUdHww5c9jKWRAjgGrb5FxD14qf2IOnFNujuRPOcZ5fRL1cJf+wc+fm6jdf?= =?us-ascii?Q?G94RPIQtAc2g8SL8r8b6JiEArS/Ypxi04b2mj6PKqy6MNR6fvV2KomlqvLlm?= =?us-ascii?Q?ymb0GJdJdSSJOuEo9IWtkADkTSVSRvcgtczO2uAK7Q5U22IVqDquusmy4m0w?= =?us-ascii?Q?kftuAzZG4F0QUt3PWnJG7U0Fzo89rfIjhwxomemtko48QBIhVAYRnA5z+Kdu?= =?us-ascii?Q?xSqxpdO1yRx2cNL0/ZGdfhjLRCGotbTILb+8HXG7Oz3nOIMTMyTq0oy56EIE?= =?us-ascii?Q?p7BooIueqmubDRDiK7vsoSvcqFlulwOaLrH6Ye/0QQ1qPE3sUy2wnOtZre/b?= =?us-ascii?Q?wJgieBg5B2roIBtmfHeGhR0atG0JU24yBFnBce3/gDJO58QTxh9jkeWA4GRg?= =?us-ascii?Q?US7kS+VtgaLgz0z4AWoBmLBzUddMr9qXsqqcwZlm6e1R6IbNCoMU1fRoQKXz?= =?us-ascii?Q?tq5HsNDt/ouQOitjwP+lGXaTGw+GWYuPnqp5gluFIo+sfhx39VFT1afGEyHQ?= =?us-ascii?Q?hLl6fcQMQSqrx7Qh89NTASczWbB3PiQPKCJTuDGit2dQCCbCP+eseSzjKh6m?= =?us-ascii?Q?1GNdsLYXPLVOig5f6+Wwctvys6VdNViJTFDPHyIxuxau9R2OnGySFLmEwdqF?= =?us-ascii?Q?iPJvfqAm1w=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf5f33ce-f0d4-400d-a41f-08deaf383e26 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:35:23.0705 (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: n6zCLyKsQNVldLnKYBeHVaDK6r9vahNsPrBJK+86EMqJj35O/+KpvlC1uGJpwT3ctMOHeXGiWvIke4doCiuIVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8322 Content-Type: text/plain; charset="utf-8" The constant ENETC_MAX_NUM_VFS is defined as 2 when enabling support for LS1028A. This works for LS1028A because its ENETC hardware supports up to 2 VFs. However, ENETC v4 has varying VF capabilities depending on the SoC: i.MX94 standalone ENETC: 0 VFs i.MX94 internal ENETC: 3 VFs i.MX952: 1 VF Using a fixed ENETC_MAX_NUM_VFS for memory allocation leads to over-allocation on SoCs with fewer or no VF support. To better match hardware capabilities and avoid unnecessary memory usage, change rxmsg memory allocation from a fixed-size array to dynamic allocation based on the actual VF count retrieved via pci_sriov_get_totalvfs(). Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/enetc_hw.h | 1 - drivers/net/ethernet/freescale/enetc/enetc_pf.h | 2 +- drivers/net/ethernet/freescale/enetc/enetc_pf_common.c | 6 ++++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/= ethernet/freescale/enetc/enetc_hw.h index 662e4fbafb74..94f53762cea8 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h @@ -672,7 +672,6 @@ union enetc_rx_bd { =20 #define ENETC_MAC_ADDR_FILT_CNT 8 /* # of supported entries per port */ #define EMETC_MAC_ADDR_FILT_RES 3 /* # of reserved entries at the beginnin= g */ -#define ENETC_MAX_NUM_VFS 2 =20 #define ENETC_CBD_FLAGS_SF BIT(7) /* short format */ #define ENETC_CBD_STATUS_MASK 0xf diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.h b/drivers/net/= ethernet/freescale/enetc/enetc_pf.h index 9fcf1c58d59b..d4f1041587f7 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.h @@ -42,7 +42,7 @@ struct enetc_pf { =20 struct enetc_mac_filter mac_filter[MADDR_TYPE]; =20 - struct enetc_msg_swbd rxmsg[ENETC_MAX_NUM_VFS]; + struct enetc_msg_swbd *rxmsg; struct work_struct msg_task; char msg_int_name[ENETC_INT_NAME_MAX]; =20 diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf_common.c b/drive= rs/net/ethernet/freescale/enetc/enetc_pf_common.c index 60a330ee03b7..43225aaab54e 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf_common.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf_common.c @@ -449,6 +449,12 @@ int enetc_init_sriov_resources(struct enetc_pf *pf) if (!pf->vf_state) return -ENOMEM; =20 + pf->rxmsg =3D devm_kcalloc(dev, pf->total_vfs, + sizeof(struct enetc_msg_swbd), + GFP_KERNEL); + if (!pf->rxmsg) + return -ENOMEM; + return 0; } EXPORT_SYMBOL_GPL(enetc_init_sriov_resources); --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010009.outbound.protection.outlook.com [52.101.69.9]) (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 6D6D53C1989; Mon, 11 May 2026 08:35:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488557; cv=fail; b=u/ZT5QPjUfoXDkcyC0S7XQcJksog1xOsIBP/ZrUa+DIBwL+9fLdT7SeE5vfF6oramqxW3gjk4MM3pnoiYU0DYBR7XFCHKuZ9ESSXQs6TXoVjblHldffHjNS2E+KM7eSFuv4VcodE9vbP02K0r+tV7iOWQgNFgJZqsnLyV0CvCys= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488557; c=relaxed/simple; bh=i+7MVTEcCllR/uaIFApVXm9N6JnkEL4kLVWZyoMykEY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=bR+JyBbw5IHX+S5GUhUYZZfZS4Wa/BzvmK4HaOUb5vkcE0evqnADxPUCACLYSuwh7MreGIFCveXtkRQu8Hdd8f4V/obtPOvLCyyF6A/ktfkA/Y4DTGuOesgBBOxJ3XCBYVcRw71g41fSUzNlBxgA+uNXzKpmLzaaXAYN+WuTyQk= 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=iCsIfIHZ; arc=fail smtp.client-ip=52.101.69.9 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="iCsIfIHZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WRxNkTRhA4E1KPUhQU+KfEiXl8nfjgSvVshnbgIpjVl6iRkeLvGeEytQlaFGujfgBgdl+UJRHJCqWF7f9pb0GCgsZroyrK51m1LiY6TRuK7fdfmCaz3mkfrJ6E5ZGwNkn8V6bg9gRNh1JJwS4MjnVhiWd6/yyFm9mw28UhHug2XVJVXgtOR4PSN2nsPFJnmvsOMcpSlHvvfF3fx5DJ7Heu3ljTTXN5+kH1Ro3ftaVS7U0sIyuSf0FDJsiY57dL82sKfDd5yQc9rv9MCMEGm/Y8mW7FUsHmC0NtN8Dn8mhVZBjJN/ucR0KVivgBNnrbP7HCr/Kp+VKKRzFP3MyhW+zw== 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=xlptiXhVJoakyrbgsQQtPrLVxYEZvHwpxc0e5PwDJzg=; b=kEDovO4KKsE7q6vzx/lntfaH5RAenQGerrhPDcRkjN3AbN7JsPf6QsYRc4fIC76ulvQXw1nopqS+6mRI2UzGFQwzbAtP4qGIXdFNUH+tf9VV2NOqAl2cWGDd/sthx3n1oa9UsSexJt8SKKRSMUx5HuhfxymlwGEH/e2kJykQ1J3Biidoh2qwNgQUJURzMH4+Pw7oNlrfD2GLP2EKpzNl9aSRTLT87h+bbWcCguxuGfL/Je5XEWP1XXEPr8/coIkSmUE4OA7TyC8FaO1GKQXFEFeJc+mlaRIrcP1S7MSNaT/D+Y0Caj5n1F1MHFs5j17rcplXeD2dFeQyxQDbPlzGlQ== 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=xlptiXhVJoakyrbgsQQtPrLVxYEZvHwpxc0e5PwDJzg=; b=iCsIfIHZ7XoV9QXCNLPbi2eohOEeTK5kPzjBYe46w+QQyVuqF9i0RuFSBHt5WZpxvDkW3wGmtOpMej1rE727pras+MKd+Q9sV3uOH/U5C9GYrM5n5/aaaLbYu5S/liQ5jMcpmfKKYJ2U0rTjB9eBEc0agTElkPy0cAbUxQD8v3UKDOknOH9rF5VjRcjErFBLuaWUYKQegsjQOrX+sTojorXr3143Wfzw/Aoh1pqJI/sfJiy1HOP5Q2goLDiUuHZAs+sx7zYf9NDSPAZNRviT5z/S/nCrNt430+iJIzoXLPY03WDprszy34fRj7V+loU+F0MMPoPEGK6mzhO8FvzREg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by AM9PR04MB8322.eurprd04.prod.outlook.com (2603:10a6:20b:3e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May 2026 08:35:26 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:35:26 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 14/15] net: enetc: refactor MR interrupt enable/disable helpers Date: Mon, 11 May 2026 16:08:04 +0800 Message-Id: <20260511080805.2052495-15-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|AM9PR04MB8322:EE_ X-MS-Office365-Filtering-Correlation-Id: 9d3c0068-1d47-4a2c-81f5-08deaf384027 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|19092799006|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: neWRCmMt2M5Qrz2R4ek4VwZqJgU7tOj/us1ZjLAq5SWB7cu0sii0Sozi5NJxhlRoXpJfBQSyCOAi9RqfzvGFu6Omo1fdkN/wADtS0L4CYYjc4X9O21IYEGLzlH1wuW2vIDy+WuAlfEcZUI7+ubXjTfied6gnOTFXmOWAXGEPa6wO6VoJpCWN83XcgYukTHp/tbiuAvinHVrGLAEHdO62qew2xtteH5BPpb2QClCTQlOyjdtE+BMrwXcJa9rHrhCp2VpHzztGsNwmcEeaP5BOIK9rtKHemAgtkoRhYO5/KDQh/gJRMvOnwdktNwt5JBsK0JU2a8mxlKSN+A/JadvQsP7jM59OpBnypVnR6MNTiOb9t4dWPKaD0JLBisv98CGYaziVfG+5v4IJ5DK+C8LvfOTRTFtZbmPYXFaTqXeYY9GnvXioWRsgUcofKtjs315uwllf/yEbPtWwQNTopvtxaFWEwsNURNlgxF01gJzJC+A0sZV7CtNTBEzF1S29/opFtIdiDopg+5XV7AnpRONdvzEL963CNgpzVB2s8jIHnqWFr5JQfi30TCD6aFoRZWHeH9UZhovUJs4D/MAwOFmHhQldfTQfo9D9Gq7t4x2HSmqlFeXB5ZtC0izAlIzDku7gRZcFp9xXWQFUidwNJfG+k6RNlmH7IbOXFSv3K6IlG16LpSSNO8aydLWNqUmxrW6tP6vobulbV6J69pDLkYNzYo/kta78/kB3Brg8HQGPgWTIKldP+YJaSuv5AT/mg2nU X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(19092799006)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sp0o3PixTABP8C5BU6pSUJBDPdFtCQSt4xEAvPDbQcXFVkz6aypfvpzQm1AI?= =?us-ascii?Q?it8o+QxNi7WcIHl2KtLNNn63xe28VmBVRUGkfW2pV28XVNluhHMXGbrNSRp3?= =?us-ascii?Q?stIXQ7enBpE1jZC68Yv5jCiZV4Zb8DPl+nFmtTKQR4Th2lXF8mFzXw08pMlU?= =?us-ascii?Q?aiAC6yd3KdNpyJLCpkslVlsN5RJXCDNEjYT11InMCfODfhFL5S488h+5zJUw?= =?us-ascii?Q?iqn2jc8K8jtkUgfhqOCTNARPtu9HgAKWFmOuQMxC5X9oQJJa66WhDvUJrN28?= =?us-ascii?Q?6T7hB2R+hl7z1l62GTWB3WIecSTqiv9K9ttMxAC0S8F3SWBKikiTHsTGTcB3?= =?us-ascii?Q?lFg7BmJiRFaY4evluT0XHcLA7vsSkU9qZkkVnbH+yvpvKhYEJdgK3jJY3eix?= =?us-ascii?Q?Fz3FSNy2VZd2KaQ4YAbDYiLEXudRq7oz+Oh8St65NF3KH7R5GvnB7kC0ugow?= =?us-ascii?Q?OPpIOJfE77+YO9o+Qq/k48Ri13juiDl2nFYNLlxMbiIa1cVDnjQDGUH2SLsw?= =?us-ascii?Q?pjYCKL/8IMYHIGjujn7t+y8RFi2g2Ic0ybpM2LuKRW/jpt9xSCqx5aIAB33X?= =?us-ascii?Q?5tCjjqyV/gkI+bzKlmkW6UY6ZSbAFgQKYbGeeWkRcHiY8Z+p1myjmWmyXbdC?= =?us-ascii?Q?UjR3qj1veIUsoq/a9L3uk5lUgd218OlzVk54K0PaWkkedfYlKYXRVnKRJtqZ?= =?us-ascii?Q?AZzCKfkCoSx1colCnfI6b4Y/ACTZBDA/rMysDuFbjapk695me+wM+zQIvwBa?= =?us-ascii?Q?8KZBXF6Ntc+LG8bm+oIGA4qvbmNW2VDCc7dhtaaiLqutnTnfwI0CPdq9BjkF?= =?us-ascii?Q?8HxxV+z8+hG01uVjDIRioRR+eFqo0h07YqQYv58U5X6BY3d+EAzD6WNGbunH?= =?us-ascii?Q?xTnZmy25xifYeqXGECIQsbfOYRuYv07IFbLo6KAdCqlbuSy3bD+8MYKJABHx?= =?us-ascii?Q?kpuRI3/DyDSlhzCk6AvNgXKhJcinwpipQIoqYaWKa3X7LnY+svMs78SDI5+B?= =?us-ascii?Q?cDE8BRv0Gw5W87eJ5rnH4h2RMmJfni6d47fWq4yzjGegRhGFPk+MJ/rziLAc?= =?us-ascii?Q?Pgmphv3QKFEvA/xaTtl2qH65zvH5DLAUehZCl6EHN9fBbcan12hrrtpLjzF1?= =?us-ascii?Q?dzKwYk1mYEddElmBd3o7iqboUVZ1jFkesQwtGk56+OvqpGZgiG1PTg0J1UnY?= =?us-ascii?Q?X4voKFgScYeNG3n0cKajBbnNqrWMoNER6KSQrUrdWh4PZAcvBstO8q/8orr4?= =?us-ascii?Q?BHUx9IXm3l/Fd1UFOXmKlK0LDJQucYtq3y8CP64alCbHHSb/LfLuZMgxUrpT?= =?us-ascii?Q?Rr1emip6m2KiE0Wm51iQbDu1JzqtHGa7WJUEQgg8L4J9ZPm3S69a2B241r7w?= =?us-ascii?Q?SLE5dAeFFc10BZY5S9d0Ge5UgpnKDahYqNMjU4mE+B7TFr25CT3Ry2qj+U6N?= =?us-ascii?Q?pdq22leEMtyJeKL8K3J48JiCMCXFey9UrWBBpC2jBT2NfOdrmRC65gEbsdUA?= =?us-ascii?Q?Hbe3xBelUgUC0paj9HcCMCgSs2wHA+bdu5EK46OBN9RhCZYqRbXosUUXJjm2?= =?us-ascii?Q?Sa/AlJ31Wf614cYhKOYWZRWdCcnSZ7x+vcQHlxxbzAUATA5D28k5fd1uhREH?= =?us-ascii?Q?8AO1D/DIihIp/j6aoHV/M/hDdxe73RK/rODwNvRkCnfS0JWdMWPp5tJN6SHH?= =?us-ascii?Q?hVbAUcl10BOCzfvfSJ69M8YMX2aC857Fc9quS4MUoO0JEvsjJA6foGIGyewA?= =?us-ascii?Q?EZ87xBM91g=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d3c0068-1d47-4a2c-81f5-08deaf384027 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:35:26.4544 (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: v3c8PvPZS8lL+3e3MQUAulBMNht7GsX1q2JY9NeD0DMhMSRpO1r/557JtgW+KTdHU96gaeALj+h1R75yyjZ19w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8322 Content-Type: text/plain; charset="utf-8" The MR interrupt helpers currently operate on struct enetc_hw and rely on the fixed ENETC_PSIIER_MR_MASK constant when enabling or disabling MR-related interrupt sources. As part of upcoming support for ENETC v4 with more or less VFs, the mask used for MR interrupts will need to be generated dynamically based on the number of enabled VFs, rather than relying on a global constant. Consolidate enetc_msg_enable_mr_int() and enetc_msg_disable_mr_int() into a single function. The unified helper takes struct enetc_pf *pf and a bool enable parameter, replacing the previous struct enetc_hw *hw argument. This change allows future code to access pf->num_vfs and dynamically derive the interrupt mask. This is a preparatory refactoring with no functional changes. The implementation still uses the fixed ENETC_PSIIER_MR_MASK constant. A subsequent patch will implement dynamic mask generation based on the actual VF count. Signed-off-by: Wei Fang --- .../net/ethernet/freescale/enetc/enetc_msg.c | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net= /ethernet/freescale/enetc/enetc_msg.c index f3e78865617e..73e32c9b65a8 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -3,18 +3,18 @@ =20 #include "enetc_pf_common.h" =20 -static void enetc_msg_disable_mr_int(struct enetc_hw *hw) +static void enetc_msg_set_mr_int(struct enetc_pf *pf, bool enable) { - u32 psiier =3D enetc_rd(hw, ENETC_PSIIER); - /* disable MR int source(s) */ - enetc_wr(hw, ENETC_PSIIER, psiier & ~ENETC_PSIIER_MR_MASK); -} + struct enetc_hw *hw =3D &pf->si->hw; + u32 val; =20 -static void enetc_msg_enable_mr_int(struct enetc_hw *hw) -{ - u32 psiier =3D enetc_rd(hw, ENETC_PSIIER); + val =3D enetc_rd(hw, ENETC_PSIIER); + if (enable) + val |=3D ENETC_PSIIER_MR_MASK; + else + val &=3D ~ENETC_PSIIER_MR_MASK; =20 - enetc_wr(hw, ENETC_PSIIER, psiier | ENETC_PSIIER_MR_MASK); + enetc_wr(hw, ENETC_PSIIER, val); } =20 static irqreturn_t enetc_msg_psi_msix(int irq, void *data) @@ -22,7 +22,7 @@ static irqreturn_t enetc_msg_psi_msix(int irq, void *data) struct enetc_si *si =3D (struct enetc_si *)data; struct enetc_pf *pf =3D enetc_si_priv(si); =20 - enetc_msg_disable_mr_int(&si->hw); + enetc_msg_set_mr_int(pf, false); schedule_work(&pf->msg_task); =20 return IRQ_HANDLED; @@ -171,7 +171,7 @@ static void enetc_msg_task(struct work_struct *work) if (!mr_mask) { /* re-arm MR interrupts, w1c the IDR reg */ enetc_wr(hw, ENETC_PSIIDR, ENETC_PSIIER_MR_MASK); - enetc_msg_enable_mr_int(hw); + enetc_msg_set_mr_int(pf, true); return; } =20 @@ -264,7 +264,7 @@ static int enetc_msg_psi_init(struct enetc_pf *pf) } =20 /* enable MR interrupts */ - enetc_msg_enable_mr_int(&si->hw); + enetc_msg_set_mr_int(pf, true); =20 return 0; =20 @@ -285,7 +285,7 @@ static void enetc_msg_psi_free(struct enetc_pf *pf) cancel_work_sync(&pf->msg_task); =20 /* disable MR interrupts */ - enetc_msg_disable_mr_int(&si->hw); + enetc_msg_set_mr_int(pf, false); =20 for (i =3D 0; i < pf->num_vfs; i++) enetc_msg_free_mbx(si, i); --=20 2.34.1 From nobody Sat Jun 13 03:28:56 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010009.outbound.protection.outlook.com [52.101.69.9]) (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 3C01C3C4554; Mon, 11 May 2026 08:35:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488570; cv=fail; b=tqXpCUKMzEX3uoF7hMVm2aX8YK/s/YSRvQf1rgndDmWzPbTn48siGIYS4SHdm1dZxKq8a+kXQQq69agaVp09X2FP+TxM/cm6zHTotK8QJbdXw/pbjr+uE8P0rdSPQ6FjfKjFNi7X8ap0rAEfio0FxgGuI+r4Y+nwJDS6cUz98xc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778488570; c=relaxed/simple; bh=DdGG/c1YFwARafmOXamfrmuZBBlGmebSI2t0kP87ja8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=U615NunxxFNVGloWDImDIIp4e2RqYFUbzpOdYcjru9uLQDIBfJyJl895ZcoeGyPvoosTQsDlTbRt7SGqZJ/ZuSsKxTgWXahVauJ7lKC8tkxzikO+OoUobkKaDj4PDU8ycW0X/3F9ZBYdngc3k11mqM0L1l5nu6mBe51aEib8Uw0= 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=cAxkBw+b; arc=fail smtp.client-ip=52.101.69.9 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="cAxkBw+b" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vhAcYKRwYdIwloRSPsuiPAxeN9bRbbg9ClQKKVU1fV+3OpiLjlUec1HeBb1ym+MU9xe23OfApbZ79bXOU55UEWEELo3lHvjgCoC1B1cRlT42I2Aq91IFhj7dOHOCSZEpUIETC+Vc1Hmzztx4X2AiTy+DwfZNBr0no+12QwBJVG9XV+9L7OU1j2wT1lGJ/WG01owZtbw0AJTzVIc5V1b3guV30eD4auPhCwrnL4tjb9qsxS4SFura9WLD0HsO6bbSiKACM6FWThjKt/kdVbY286BaoDqN+MQjY32BFQkZu6EpInb/0HOAdXsGjU66JDsKxRxYZ5mcTsFw6RrtgI+Fqg== 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=MFCLutcLr6O4HE7Pg54bFTM3npU2KN0gtWR/y/26SEs=; b=AZ6M9whe8kdS33a3prtwdqV/Ln3wgPWe9oau/kfY58V4JpSIlH6C/3mSb5T4SOodKxfkzJ5aD1b4b950olp42mf2mLlM4ASurHP2yR98cYrA9ZAO3SXPgTM+/qOWS3p1GkMegQi94hnYyO9UfKJATJn5dUh5+njRrps5eKzuOFUHeTE2GV9UwoMWIWA3v3uhkFu+lkxa8c182wPvkZqWZ5vULjlcZ/3UNhx/Gcdbt8ZKQFm6Pp0204GimklTrH0DNR76E8yhufU9MClzOWuzshz6HsoODwKEAtuqYcFlxy1dSwpJuKQbQtRkWj/AasGIlt4KIAvrtgV5n3BRd0UAAQ== 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=MFCLutcLr6O4HE7Pg54bFTM3npU2KN0gtWR/y/26SEs=; b=cAxkBw+bdiHO5lyYq8kgJXROIAviT+5j4RisxjunguKc2YFqp5NyJwkOOh98OlV58GaYTKNvQYii8WoonjqcdgQi5HFUe0Ue2yVSrHK2K14edMiG1Tjcl1PtFGikkc2/Yrpm4/YVyfPSZW6F1h8BkTiGP5D9zPkGydjgFt/p9Bgm6cSvqO1IU6CoGqaW3QVWa8v0Wr0zng9V4q40uOmzNkcmO2bCtSXvPVkssHJuIns7VakyScHRsZzz1vzdE1c6/+eWX37LB0PN8BOifG4XElF8OZ1cMqFKkQjVgA4O78fECrkCXirQVCw96PJkXRvsYFN+Jaxmd+s11PPmdFg3sQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) by AM9PR04MB8322.eurprd04.prod.outlook.com (2603:10a6:20b:3e3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.22; Mon, 11 May 2026 08:35:29 +0000 Received: from PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0]) by PA4PR04MB7502.eurprd04.prod.outlook.com ([fe80::ff73:c7b3:5306:2ba0%3]) with mapi id 15.20.9891.021; Mon, 11 May 2026 08:35:29 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 15/15] net: enetc: generate MR interrupt mask based on the number of enabled VFs Date: Mon, 11 May 2026 16:08:05 +0800 Message-Id: <20260511080805.2052495-16-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260511080805.2052495-1-wei.fang@nxp.com> References: <20260511080805.2052495-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR02CA0114.apcprd02.prod.outlook.com (2603:1096:4:92::30) To PA4PR04MB7502.eurprd04.prod.outlook.com (2603:10a6:102:ef::21) 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: PA4PR04MB7502:EE_|AM9PR04MB8322:EE_ X-MS-Office365-Filtering-Correlation-Id: 09f38ca1-99a0-4305-c623-08deaf38422b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|52116014|19092799006|1800799024|56012099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: YMZgBhwFie20/+PnquDWKBncK0GWbTuCQYlZwGepAD4hGL64xUaP6qNhwt4Ws1sip//dcfCBWuteemEY7UWk83KqOeJ6+twMCEiyrm/5KiKGJnnEf35Ok3HvkzYxrDRlZVC7lYePNZdM8O9OsT8LGbruoH4SJKvjXtTYnwzJta8Y6M2RQuptKlAF/ZD9xtR9zJKxgKl5YnRAQNDtCHe1Fbn+i3abzzx68F6h53unUv7oObu8LRncHwzN/cGq7PdzPDSs1A770wQW8wfoKq791PQ0Lx2kaA10XYthDDj+1F/xKNqNqEqPCSvShPoOKdQEXihICwQ3VxobACjnWVM5mmf5+EjxwlCtZuZq4370jU7GN2dX6qZv71Iwxxa4cdVCbrsnQnAQPRSzBcCXNBS9BjFzBdBkbje5Q42VGFyE1ZCxfcceArCCJxRaR8L8tgeOwzRCRPadg65KlNxqHSWgaV3EJLH0Fotv1nAKnrecx+wZVRAclUWqi73fImUR0CWrVVuTI6vJV8x0Hzv71p5vpZ7ycaosIQTfJgS06T22EucmDWco1JgNSGpBtNNCfg1+/ok/l5MkDxPlYnD9yiMbhPg46+ak6uRy3LSU4BmqIwF8CcURiP/Xe4R4HqnnzmALMGA+gr4lLu8IaI+oR6rnk6nXatmITPNbS1YrB2v7FXI6oUXvFKjkGEVoEIHUB4zmfZiZxWlLYsFb2CTgTuEpgh5Va8ZGx80YJbT0wMh0OBW7jknPxL/1hQ7d16CmLwir X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB7502.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(52116014)(19092799006)(1800799024)(56012099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Hn3+RbqF8jdtnkBpQvXW5EQjomXva8ZbQe0oKIPwF9+Jdl64u6zFGA1Nyxw+?= =?us-ascii?Q?GZffPDmDsmt/vByh6cFBSQajSvtZGu3Vt4tGvDG5T7WVLqTbvpvYNfo8pm5D?= =?us-ascii?Q?YaLNI7CA+lwCoemCJjMfFmVs7JBLK7CQmKiht+A0C1th8xuSJ088uciIh2OV?= =?us-ascii?Q?0K2M7zDgbFqlv7UQa71eXcryXl/cuKsNcxc7rdKZvfuTUUrl5Mw5SWZliaQn?= =?us-ascii?Q?P/gkQS0p06jY+HAsHigE4PTJ3Uy9dVyjEjVYnFnExsXCHWk/bjsR6H+ZHwma?= =?us-ascii?Q?Ce1RbeURtXmI8V2cOHWKsZvJuFesIqjyDhCjpiKSWjBvjy8FxgXqpWSx+BOd?= =?us-ascii?Q?iXwqcYFHgJ3cs9yzsl4waOaN2WLZU5m0E7jTVHZv+jrr6aJkX2Bim1t45IN+?= =?us-ascii?Q?Dwe5GGpNB1vG/56GwHCGNv5DR5BwV16NlHGrVNE0mul0XknybifezIrYPmWJ?= =?us-ascii?Q?X2dp6v2VSkfC832hQ1JSzp7ri2VjqADHomybDGQD1xOUpz2CvlP2lieqElFG?= =?us-ascii?Q?QM1u+iP9j+z0ee3kwwFLncdCr6fSMTeAXrorJbrG6ixLTOTeKtR2yUbh4sPP?= =?us-ascii?Q?UIJc/YFhD6N8Mn0wLovGZAfdnEwsjMsTrfn5iJXWOZEUma7KZTITkujibziK?= =?us-ascii?Q?+u5aHJxfqeZ595tEct+6+JdDJAXzxMArjIIgWyXpf4fLp3BlAlWUpp3Mc4pQ?= =?us-ascii?Q?eFwZfj5JgZtM7oYwLw5o5t3mnNI+/pgwwjP82dJJXShqS4wGp46WJJWLFdG7?= =?us-ascii?Q?KOMsTIwfr8tQYmJFntYyK6CfNiBarPzwi3JkhHNWSDrxRAgyIQc4XJLh4Kno?= =?us-ascii?Q?7TXymO3ZlHhyrvPHa8bdv5ztakf9iLrzMPzLASs7p6n9qheyktL4nQT80xaO?= =?us-ascii?Q?aOAmfkcPgmbpImw7H4h8hl8W81cf34rhpJTzde1mW/8/hwS4kucahcbb2JLp?= =?us-ascii?Q?KdbrhfU5vuS5mBGrjlh/g61fZSO/vRKCFyRXjY5SJSING44cUzDUo4JMLDXU?= =?us-ascii?Q?bATAXg+2CJWJb4eWRztX+wmosEhWGxYrCyqvp1+YGkefXevz+/lb6NVItNM3?= =?us-ascii?Q?I5D/tV7cyHNrDPTlQ90DOgdej2l4VbVH9NKyje6l8WQxb8A0NkmxF5A3uXOv?= =?us-ascii?Q?ZJ8RidU7LbotT4vLsXB8lN2qiSN8AXJIjkRBTy2AwOBACbW7wVbcN/0uLTv6?= =?us-ascii?Q?GGv0yIelyzSE3U2wD6UJw1IIoToWDpMazqOA3m09ktU8w+DI05q9T/18+ehU?= =?us-ascii?Q?AlVAim45xDuLVh/J8x/SrxS26HCXcNEMU1X+XH0eXcaBc7bzulDkuVjIsiK+?= =?us-ascii?Q?/nULKy9ucHOfRXsM4Ven/F10N+UHrix+O8h+S/iV5AfxCeOSUsha32uIXq/Q?= =?us-ascii?Q?pRLv98+jn7S3MiJDVh4+Zfj4KvFcgxMgeoCdZb02zPO3JkQl16xlaDxIAbTF?= =?us-ascii?Q?P56zkMi7b7BUMzVMwTJEAvuMHmqJl5gdOCeUESN/y52JKzv0ZeJFB5z+/W1N?= =?us-ascii?Q?XFxTpGmFOpeJAfcz5TaT/hQ32jYESmNdqo3eeZHP1zARE9ttxeMfn6gc6eSR?= =?us-ascii?Q?Sez7YPmNeczuQmCHSVLGvhVBuBE2vQ9IlDm2hnjmSNAUT1q0NS4R0i9rdMJ1?= =?us-ascii?Q?4JPV/kbUhYKNMdcE9K3ox+3zPLaH6chsWZISDiQQ6/cXbOjkl6aE4mwZc39m?= =?us-ascii?Q?RHbG07WIJkhJpmc5/9ssw4LOfpVWu0oxDfaOz9KiAN65so0tBogQHyHTze+R?= =?us-ascii?Q?tRUhDUYSsA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 09f38ca1-99a0-4305-c623-08deaf38422b X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB7502.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2026 08:35:29.8051 (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: uprQYRpG4dCHRnW2eedQ4GAfeR9jxxXTFY0gN/fgFitrthtObeKqzO+DfAM2KFwp31PMtBlLPKrQeRkb9H8olw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8322 Content-Type: text/plain; charset="utf-8" The current message-receive (MR) interrupt logic relies on the fixed ENETC_PSIIER_MR_MASK constant to determine which VF MR interrupt bits to enable or disable. This is sufficient for ENETC v1, where the number of supported VFs is limited and fixed. However, ENETC v4 devices may support a different number of VFs across implementations, making a static mask inadequate: it may fail to cover valid MR interrupt sources or enable bits for non-existent VFs. To accommodate hardware with varying VF counts, replace the fixed ENETC_PSIIER_MR_MASK constant with a new parameterized macro named PSIIER_MR_MASK(num_vf), which generates the appropriate mask based on the number of enabled VFs. The macro uses GENMASK_U32(num_vf, 1) to create a mask covering bits 1 through num_vf, where bit N corresponds to VF (N-1). This preserves the existing behavior for ENETC v1 (2 VFs) while also correctly handling devices with different VF counts such as 0, 1, 3, or more VFs as found in ENETC v4 implementations. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/enetc_hw.h | 3 ++- drivers/net/ethernet/freescale/enetc/enetc_msg.c | 15 ++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/= ethernet/freescale/enetc/enetc_hw.h index 94f53762cea8..77dd7913d199 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h @@ -94,7 +94,8 @@ static inline u32 enetc_vsi_set_msize(u32 size) #define ENETC_SICAPR1 0x904 =20 #define ENETC_PSIIER 0xa00 -#define ENETC_PSIIER_MR_MASK GENMASK(2, 1) +#define PSIIER_MR_MASK(num_vf) GENMASK_U32((num_vf), 1) + #define ENETC_PSIIDR 0xa08 #define ENETC_SITXIDR 0xa18 #define ENETC_SIRXIDR 0xa28 diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net= /ethernet/freescale/enetc/enetc_msg.c index 73e32c9b65a8..e9963ea154b0 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -10,9 +10,9 @@ static void enetc_msg_set_mr_int(struct enetc_pf *pf, boo= l enable) =20 val =3D enetc_rd(hw, ENETC_PSIIER); if (enable) - val |=3D ENETC_PSIIER_MR_MASK; + val |=3D PSIIER_MR_MASK(pf->num_vfs); else - val &=3D ~ENETC_PSIIER_MR_MASK; + val &=3D ~PSIIER_MR_MASK(pf->num_vfs); =20 enetc_wr(hw, ENETC_PSIIER, val); } @@ -162,15 +162,16 @@ static void enetc_msg_handle_rxmsg(struct enetc_pf *p= f, int vf_id, static void enetc_msg_task(struct work_struct *work) { struct enetc_pf *pf =3D container_of(work, struct enetc_pf, msg_task); + u32 mr_mask =3D PSIIER_MR_MASK(pf->num_vfs); struct enetc_hw *hw =3D &pf->si->hw; - unsigned long mr_mask; + u32 mr_status; int i; =20 for (;;) { - mr_mask =3D enetc_rd(hw, ENETC_PSIMSGRR) & ENETC_PSIMSGRR_MR_MASK; - if (!mr_mask) { + mr_status =3D enetc_rd(hw, ENETC_PSIMSGRR) & mr_mask; + if (!mr_status) { /* re-arm MR interrupts, w1c the IDR reg */ - enetc_wr(hw, ENETC_PSIIDR, ENETC_PSIIER_MR_MASK); + enetc_wr(hw, ENETC_PSIIDR, mr_mask); enetc_msg_set_mr_int(pf, true); return; } @@ -179,7 +180,7 @@ static void enetc_msg_task(struct work_struct *work) union enetc_pf_msg pf_msg =3D {}; u32 psimsgrr; =20 - if (!(ENETC_PSIMSGRR_MR(i) & mr_mask)) + if (!(ENETC_PSIMSGRR_MR(i) & mr_status)) continue; =20 enetc_msg_handle_rxmsg(pf, i, &pf_msg); --=20 2.34.1