From nobody Mon May 25 01:15:09 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013015.outbound.protection.outlook.com [52.101.72.15]) (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 608AC3382E1; Wed, 20 May 2026 06:42:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259323; cv=fail; b=OPS0X+mfDVEpwj9diqv4aFvLutzB2J0R8O3VYI6bLVJLKaVqe/1C6VCcdmPRJb6Bx52Zcj7ztU7FxO1PXu8h0aQX3GzPT+yuC36CHvLqIH3IYZgwKtbSlKl6tP5pl3ASJcG7Ka1vswolHFreXq774F/br/p/AGqgktCkNEzj32g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259323; c=relaxed/simple; bh=He1kNZXX0xdzdOCodq5TP/ePNBEAMyvI8vXB9IIInvU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=rjDuzuYBWM/NyAv/WoGa9OvN2znasKUi4K0+E9Dw2qOCCVWtHtcxpPZXY0SmmgKy1HKMoy302ls/kso4t9v4zyf7SIIUdAT2bL5TJUjFaY05mAuNvR2nKCI5Y/SvDkUua6Ge9iwpmX74eiA6aeaHZpKh/BHflvAeJZtaEN7eowI= 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=S/2VN8ll; arc=fail smtp.client-ip=52.101.72.15 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="S/2VN8ll" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ilu/jtyz7JVg2ITw2AcF56p8Bcdsmu9s3i5kjXyXYgGBeC6pgOQqq9972/164p6/Tyy6wl80kiXQYxBTPTb5uI0DC9hUX0z/HNRkpvSJNQN2gD0zBmGrK9ELCuiR3SLBXWUA+IVYT5p3U7+x6bOEDj7+5763BwQnS1YduEHu1RQoT6EYOO5Wn0R6E476zlIz0Zj0tZstggvL51gtJL6mavlF56JlmTdnp68rNFHzA+fPrpIWjNSUic4/GbogMDTvVyQRyNun6p4eRTIa/C0djrKTW4A+UqMMoUmwHW0jwt9r/yaGuRck1hZhwt/rwu6JT6PFVgdfvucMc5vGJlFVrA== 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=oVqgsefxxXI540L9+tayJuEVaxuUc4DTS1lwbr9pppg=; b=XOm6QeLwstzK2u5cxVneiwxt6h4qCok0Vup2M6KmuCLfQGm1o3TI8VQuMPqh3441/519H7/E/5s+LQhC7iVawJx+Et4HPcxuIT9Cx2iTujL/ngmA8GUMQ06HSd9flA8rQMfHYJVTGGiphDYpp/Upr4ov3qfJ3AGRz71MuVcty8s0TFd25RqYQfi5iNAAknhKQV2CqTaZNrWKJQSpPoL+OGDkPosHDTCGblIFbqdJEOC+Au5Vq6/0M5+paBl4xNCvwLCdFcOawMw2n1J00js+AlaxzBuXiYyasYcc5mueweEr7lczzW5+M2Hfpvip1c7i/76XjamKqX9I3oV58LBJVg== 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=oVqgsefxxXI540L9+tayJuEVaxuUc4DTS1lwbr9pppg=; b=S/2VN8llTuMXHP7vxCXiPUEEjaoAa7v4qon+UA1vvUTPa5Xn3rBLQwbhvyVXnzVWtL1PrxWuZ/TmlwFaLjAWnkbGWnsc/q6xanPtSSiWBCBw8R5livodnRSo4xotWx72zxdteGwzXwdu/iQhC8BfvI+0SeJnnbnd/EoKPrsENUR7Wm0JNOb7C2fXAFmf4/JVFmauH8vfJmA/WCzcg2SkYXTgigNz4Kk2MHQJULCqsQjIxGpO/VwyZ/XQq280tSZnAV6AIJljzb3QK231zFQ5h0NkrsTB9s4aWfJWH7u/4TJYEkWR+OEtq+KZgYD3UISDcMAIstozcFm2PPpBorwj7A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) by AM0PR04MB6948.eurprd04.prod.outlook.com (2603:10a6:208:187::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 06:41:58 +0000 Received: from DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7]) by DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7%6]) with mapi id 15.20.9913.009; Wed, 20 May 2026 06:41:58 +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, hramamurthy@google.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, catalin.horghidan@nxp.com Subject: [PATCH v3 net 1/9] net: enetc: fix incorrect mailbox message status returned to VFs Date: Wed, 20 May 2026 14:44:13 +0800 Message-Id: <20260520064421.91569-2-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260520064421.91569-1-wei.fang@nxp.com> References: <20260520064421.91569-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0011.apcprd04.prod.outlook.com (2603:1096:4:197::10) To DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) 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: DBBPR04MB7500:EE_|AM0PR04MB6948:EE_ X-MS-Office365-Filtering-Correlation-Id: b21f2718-54b8-405b-7cea-08deb63ae3f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|19092799006|366016|38350700014|22082099003|56012099003|18002099003|3023799007|11063799006; X-Microsoft-Antispam-Message-Info: lU7xmPcFQiTVRU46tFF1GhbvzYF2SuDaYFWRjwv3mvTC/kpAIrWNhonX0/wsUoJOdsoyFUNstCnjqSXfrT/nHLWPhWSeiY3oF7N5Ljr7k/5v/djN/RhZ7Z/2zHC/92DojPjp6NaaKYf2zvJjLo/blCQbP7uzJZ86EbQq3CshjxADPsfTh+cxMwjxrJVoRASNsAQpV/kjrxTKtInuQJq/XChELHwMPFQLZz6OpXV8J27QU/megDAKtqXGdi6dPS3FhjHVAUGnJeAYPr3QyCaWiI9CUvYn61zS6NJLghzl4mtb29lA37sM5yiNVPAWLbPJG4+r/1lluBL5Aclea4kkR2H0poZk3GEoYuLbssMjh5hUotp3l6smWmBFKslEf/KpD61JvyiyhW4jW5zzLiLRDwWOC0+R4f+CjEUvHyqwaF9Q6pujUEL/ene6+q24qc1bUU39rJSSXWxKYCdZdoArdikGWNMWCgGuFunh0fyKzh6Bn3VE+ca74+WlkQmlI2dGWLj4SnQAnsUtzRpooo5BvDr+mWG09D2TODLpi/SX/ZGUJM7FL+LBv/nwhS1z3g2OlAQQJmDZrF4W/iO9/hebAY9H+9uhMbhaWrVm1dHvbQbV7FyDqPmeDJHMUhncbYsrrp/FCULxAmvYjGIcA0qE+B5t6577SiD2z16rrpqrsdRHR3eWB54oSYk3RBXI+XuXzmf/14v2cKXKvOo9e8g6bYkHmWJ8p1dkjs6D1oy7vrp9UkrKJKOcfkAcxOB1S/cP X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR04MB7500.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(19092799006)(366016)(38350700014)(22082099003)(56012099003)(18002099003)(3023799007)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XKtmm667FmO/z531Ji2zs2F/Mv6OIiXLzjhQr78JooLOImt2/iOGzR4DyYGw?= =?us-ascii?Q?6KbczybHiFyrIQRj/gf9tDxNuM4RqISzrGEA8IpYypIYPckueeEi3WMFyj4G?= =?us-ascii?Q?BnRPqpe4CfzbBQveWdgqKDOwksOeLgMgD2bQ1jkm4vxfh7uNDi1/DhXj3r7X?= =?us-ascii?Q?JpEKQu2AWLbyf9VSlDaFwKDh8iz98bX3p+0PN8XZ+Xe/Vlw8NRBSWlfOzgx9?= =?us-ascii?Q?8gJRoBDfmqJjHWzXW7IpeRmU8GfYckUxlLaHp9cqB0TVosUnZoLvcpITOjlX?= =?us-ascii?Q?rwhtrLrL5RtJVVAjMTU1eQdQtXzVok5M+9HxXk+zXHhsHo2NBvHe2Q99oPSq?= =?us-ascii?Q?729NW2aaT/hzKvs7u1boIMJQZ9+4edUdTxSs6GXKFuD8mB+u6vZf+bt/KNOM?= =?us-ascii?Q?sbvM0eeG8y4XgaOCTO2Ik2rjky7XHGQyc7QGGyg0ecQL+0XezaSkxgQQ+M3R?= =?us-ascii?Q?J0mLrgUAEa1yKWmANd2z5rNY2notUwt4MybztZkG/CRWUcsuvJh0DCrITppD?= =?us-ascii?Q?zeSskBzTKBpXOWJkW8UyvP44P4vSO3YcZqOrZLDZh2wkYXTGib68zPel2KuZ?= =?us-ascii?Q?vv2T5g4f1uf5EQ1L9yf4LeufZWJmNNnF8+5fYfZtR6VVrQ0GwBJjBFNOCT/t?= =?us-ascii?Q?RDZturxUfQa0bvrnQdT6JHPUVZHPc611VFCy6bqasNoYySPcXP6oJC+/timp?= =?us-ascii?Q?KmCxGnk6cUMRzfTP6qfR9TvwWIM0H3Aeh0Uhw8pgZ/AgqwEVufvobp8DHUAS?= =?us-ascii?Q?oCx9TZzUo/wabbPmSdnLavDuyNJiA9Q6QKto9rT9vh4bG7AsupVoW1Dn8A9w?= =?us-ascii?Q?gkJJYJaZCcAwjGsJAgxn4F6lVYTKVt1UOgwBn+RqZuZh+EM5AOcKY+AJ45JX?= =?us-ascii?Q?JunwjdQDFcl3bfTgwPaoXjP/M9ODOzcShq/3GJNsAn19AxrXEDUZSMN7Vibd?= =?us-ascii?Q?P0gaaHKsku8u9DPhRrq6yVjgRIIDgX9Iku+ynYDqQqR8ED32jQdUohHHhZty?= =?us-ascii?Q?nKOCQzHC+3EOBvZRWCg4IqKbox/NRwVumJcwuTk4GsNSBs9nCKjiVRupOvrq?= =?us-ascii?Q?n0jzY9Q21PvwsNKZnuHE/Heg1PsjssCtopcrpN1G0R27w1HaCDJ6wgNR4pgJ?= =?us-ascii?Q?iR8F8FOF4A1d38XEmPv7ZcP8a88B/iqhgmPMkFBzt9INEBspOCv14Gl75FC8?= =?us-ascii?Q?/VEViNoKg5EsxaQCO2a4UcpUMbEiScWYFPDEkDihSV+8slt48YQJ+9nbNW1V?= =?us-ascii?Q?MAYxI3JEqkfeRViaWnLphZE3boWCLB5OYqocOBGw3mKlka7JgYCw3MNDXtiW?= =?us-ascii?Q?4b+g1S/+TLId9bjBCM3V9niAKVCJklpXCIf40NLE5VUCk38kcqplV0DFvFaO?= =?us-ascii?Q?TENDeq5X4FQUQ2va7le4BpNd/mySQBnG1tLgCDIB5YhWK2g6EINW/4U6mEus?= =?us-ascii?Q?QAlIAtrFvHnFdHuzHc7EDGWsMgB241/5h6rIYhZ//m3/CWGVpyRFbC+aN+l9?= =?us-ascii?Q?9md8aQJoeB6w4AD1sLaiPiue1cVz8Xe/mINvjiS9ggPQQh/8ywx8CkoVUleS?= =?us-ascii?Q?ry4h0ExSVIDJiEZBc1z2G8HiNthvKV0mHUxIpgkUIHtk0khyS/N8WCLZb1LA?= =?us-ascii?Q?BQ2YNP/TTe3Wrg1AHqRj5LiAU899DiFNCp+WJnk9Sau4B4I8t/XVDnCUit9e?= =?us-ascii?Q?AHUdxXNFYbjGrEK6z7qOXqelTO3mHWH9QKHlcJIj0Rfoyg4HdeyStV6vVOSD?= =?us-ascii?Q?BPIQhWZJPg=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b21f2718-54b8-405b-7cea-08deb63ae3f9 X-MS-Exchange-CrossTenant-AuthSource: DBBPR04MB7500.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:41:58.4304 (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: 67IwOrSf7m6VZobvS4hn0ZzYufxgYrDiIsHBeWuSMxgKpXmxapBQAzJWP15S+k+VwAAThREfbAO/1rYUolBy8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6948 Content-Type: text/plain; charset="utf-8" There are two cases where VFs receive an incorrect success status from the PF mailbox message handler, misleading them into believing their requests have been fulfilled: In enetc_msg_handle_rxmsg(), *status is pre-initialized to ENETC_MSG_CMD_STATUS_OK. When an unsupported command type is received, the default case only logs an error without updating *status, so it remains as ENETC_MSG_CMD_STATUS_OK. In enetc_msg_pf_set_vf_primary_mac_addr(), when the PF has already assigned a MAC address for the VF (ENETC_VF_FLAG_PF_SET_MAC is set), the function rejects the request but returns ENETC_MSG_CMD_STATUS_OK instead of ENETC_MSG_CMD_STATUS_FAIL. Therefore, correct the status value for the two cases mentioned above. Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support") Signed-off-by: Wei Fang Reviewed-by: Harshitha Ramamurthy --- drivers/net/ethernet/freescale/enetc/enetc_pf.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index a12fd54a475f..27d4bb65e017 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -493,11 +493,13 @@ static u16 enetc_msg_pf_set_vf_primary_mac_addr(struc= t enetc_pf *pf, return ENETC_MSG_CMD_STATUS_FAIL; =20 addr =3D cmd->mac.sa_data; - if (vf_state->flags & ENETC_VF_FLAG_PF_SET_MAC) + 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 - enetc_pf_set_primary_mac_addr(&pf->si->hw, vf_id + 1, addr); + return ENETC_MSG_CMD_STATUS_FAIL; + } + + enetc_pf_set_primary_mac_addr(&pf->si->hw, vf_id + 1, addr); =20 return ENETC_MSG_CMD_STATUS_OK; } @@ -509,7 +511,6 @@ void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf= _id, u16 *status) struct enetc_msg_cmd_header *cmd_hdr; u16 cmd_type; =20 - *status =3D ENETC_MSG_CMD_STATUS_OK; cmd_hdr =3D (struct enetc_msg_cmd_header *)msg->vaddr; cmd_type =3D cmd_hdr->type; =20 @@ -518,6 +519,7 @@ void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf= _id, u16 *status) *status =3D enetc_msg_pf_set_vf_primary_mac_addr(pf, vf_id); break; default: + *status =3D ENETC_MSG_CMD_STATUS_FAIL; dev_err(dev, "command not supported (cmd_type: 0x%x)\n", cmd_type); } --=20 2.34.1 From nobody Mon May 25 01:15:09 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010013.outbound.protection.outlook.com [52.101.84.13]) (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 0FE1F33D506; Wed, 20 May 2026 06:42:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259330; cv=fail; b=aMQ5QzznaaBYl76YjTdOx1d0xJH0nAsOi+jTrpujPNCIR/7OvCHLdcoWAJDCnJm4ELxV21G8nOwcmoVlAdcBh4gUdSaBQKnkTdlP+SXCPpJqqNZOdjoQ/EhygbpwgntimnzV+/eGR1eGFBhSSHOj+2U/vADH2mL4kaXWSlLGNY8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259330; c=relaxed/simple; bh=j0LbQ4Mqbdpsn3wX6jRsIWS0PQ25ocNcOhLj53U41rs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=dgBZrHcdttEK1rz5L/IqiPHrPymMYUw8ErAfzOfeDkUv8e6Pd7so7BfBAuSOIDdohWOWqNRY/cKBkPuvxLXUy/FNyZQFxthO1KgiJEJ3JBXs4pV87pig0PSmQsUDnw8qcG1R2S27XjrLALZuI85+MOAquJVst1l/j6P/JX+WL8o= 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=KVRJXNrf; arc=fail smtp.client-ip=52.101.84.13 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="KVRJXNrf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PmOIO+r7eRpnftHwTRiNT8cnHVI8o6AQnlLVtfiT3ZaPvKeqJZJXOilbAnQP+KuN0JBjYDr9Ak72UEXeTqo5KBmZSBraJyxU5hVL/8rGATiFB6J9VtWagtgoZuFDwtPhMv3VM4xXQGM4pb/oVrroHwVUiT0Xj42b/Xk5PAEZX6v3EevU4tv3HULYWi1S07MKEkrwe9gcDPee4n4lONebqrs3Ziky4OQFO2GjwZa/SgV81sxK9NEFUhMj0NN2QVfRlmpMxFv17jDTNnOcfPZW96HKmWpgMjlh4ob/6goZgLhybD381dodiUV6A9YwLPRNRVlg2+hE+cy+DGzbu5OuNg== 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=kA/4zwKvyhI1a6uhO1O/wTIUaBXuJyC2qSADqDI8vac=; b=nh44l81tCxwqXVNmIsEuLlHiEM+6lsVPtM1Me+b2294Se6kLJZMu4Y2/YOi4Rvh9T/clCOOJeSfax/LAHzKG3FkpfovGk3pq7+NgTuEx7R6yttnPKO6TNcspvHNb2rOUlwyJrebnw0UamWnMsOdJYtElCugjDfbFVLN30zMGMWRrl7v83Mfp0P+e/8Giu99gfAeOAcU70Xal0HtOlBtOOR97jN51Me7f6hV3Xx1rONVBCUWo8KJfOFwQObHFUXf7++JMmxIUdjAK6/AvVSoWZisDKz9BizK8l3CFEzOqPKTVCwZ8/2KuldzTRBwyPX/peHS6Pwh2BUS7s3OsWS0Tcg== 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=kA/4zwKvyhI1a6uhO1O/wTIUaBXuJyC2qSADqDI8vac=; b=KVRJXNrfL20l19o/cXy1FgtJS4msQPrNjSa7kZoY6Kkb9dEa5X+jLxPncyXE4kaT0MeQtw3TuGGfAEwuc9Ok6NehzTnnSoL5mbLe/tzvH8xoT2IjLyPkt07PGlAXSitYD6oOhfWjV4JUVPt7c4kq6qPQwTaKXWbSzTcOB7g5ey4YBmVLsSUhG+HmL+px+yDUdaOMaXzeOSzaSlV4oGYT6kd20/tyJfFey3Mk+lB/uP/xBSVk2ulWxRpKbot3EuXoMhGoUJsnR+S/dBpQHXmP3ek4KE9osMlnuEQoIDUk0wDVd6leyGKGT/oGtX60DiMEnq2uj/B8i7EW2XoTXRI6bA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) by AM0PR04MB6948.eurprd04.prod.outlook.com (2603:10a6:208:187::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 06:42:03 +0000 Received: from DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7]) by DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7%6]) with mapi id 15.20.9913.009; Wed, 20 May 2026 06:42:03 +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, hramamurthy@google.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, catalin.horghidan@nxp.com Subject: [PATCH v3 net 2/9] net: enetc: fix missing error code when pf->vf_state allocation fails Date: Wed, 20 May 2026 14:44:14 +0800 Message-Id: <20260520064421.91569-3-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260520064421.91569-1-wei.fang@nxp.com> References: <20260520064421.91569-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0011.apcprd04.prod.outlook.com (2603:1096:4:197::10) To DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) 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: DBBPR04MB7500:EE_|AM0PR04MB6948:EE_ X-MS-Office365-Filtering-Correlation-Id: c22c2306-b722-45bc-969b-08deb63ae719 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|19092799006|366016|38350700014|22082099003|56012099003|18002099003|11063799006; X-Microsoft-Antispam-Message-Info: vY3I2S38mLBG1muPmYhDZt+DznRnOb2Q5iMi4zUV3O2Gs8poKo11ChZNluGoh3Bt/Jtj7tGncwPxSIY9mfulHiGDqROJVCUHj/JsCP7YE0W4/BuMa8hu3PS1wUl9bkQYPPP+3axh8wwsZ41StsDHXGtEWyNNdGhX1kcjtzLPLqRV5EmCG6HbfgBjIvmaa1BV329QZ5PdjmY4YA1ZxCn6hkHGv/prUg0d5xBtdi3cgSVcVTEwKolG3d5vYgIVsWl/knwi4pFROMMDolJx5/gDItgkGfQp9Yae4VDmBX7/d8x+bmWbMhm6ErIbCze6eajZ8GZcE+miXdfFoniYGzT62Bl6hOnsZesDO1Cq78APlQCSUjeceT+vAcgYpik9i8IEnqNX5jiYJhos/eJfNXZnGt0Qd1LGLSt+klpGZ3s4wJV+Cc9jtP23cWeB9Z7Wm88d8fZ/9TgKgGGzu9D1cFI8pOZMx7KtdmoA+EGzSN4bHW4Aq7O3e7PF+gnoEvAyKgGTaWq52udw/oJnomcmsbsWkFuE24mSu8ZDsYXU3kDJ0xY5UOe3mSNS1d9hnXTUYlb7d9Cdp5yyanqFkwYaigH1MTDGEa8aupoLRwGji9yQfScWBqgmi3OUcz84l3j1l6u3IuzMetfgwrMbaj7Ob+4QHq8WneCSF/6FSZyPF/VVmL7oEfpoganZjmi+JXhPYiJckLwpmeCqGpRs/LIrCV6o29zvI1yrcXwoxpe+ArVu0e7Cz/K8MRsALNzE73R/xgGf X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR04MB7500.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(19092799006)(366016)(38350700014)(22082099003)(56012099003)(18002099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9AmInqNlgkS6fOUy+zNTTTDpcYiM4GmMFcvjjrucW28rO9KitWaDacQGF3VS?= =?us-ascii?Q?T/L0uT5rqt9uBIr/QeE5VetEnyZ+3bVujH6U/7/yugI/sQtO3aYI+pgBWJt8?= =?us-ascii?Q?rcaxGywyWYqRMre4wiSZ9ZS+mO7JwmBsNhOqH9UWGD/K0fe4bzFIAbUeWPs8?= =?us-ascii?Q?KFmP7XUDn2YM2qgHWa4ZDgcNnla0Fb+ovGi0GuUOoY3iHOkV8+m8kxURbsxO?= =?us-ascii?Q?Lkls/VG43wCxhLkO8jPztoxxzCIBzut5HbjiQN1MEsZzFGl3eOv3kI2+H01o?= =?us-ascii?Q?gQWJtVgS6f+iNFFpQWwhVC9njTJ1XXO7Kgf+6uTVcW/IzlkwlX/zroMVWIqL?= =?us-ascii?Q?dVokxeiFf5VCsgiu/oYt1AZyROxRZDgyuRH9eP9R53k/XFl5WBodMQ+lOjat?= =?us-ascii?Q?l2wDuzET9jjgN3unvXhchP9RvsAZaFecO2NRdj7JMQlZPDEJParltpqwy5dR?= =?us-ascii?Q?DV0vzwshfC/UKy1T8OFcPAt+KZlqLZeWrnLA/43Cb+yBEE7TWho8I0/E7s5W?= =?us-ascii?Q?SZfALdTHS38SAuYxxrkWvkNZHxGNinGK0ImEAV/aYtAF3jv4fc1WklXLuU9X?= =?us-ascii?Q?dSXBSXuKWaIdegEssmkxxVgS9syx+LCo0Y0S6tt3Y08NFIHm3JLbINGqNzt2?= =?us-ascii?Q?PDdqsuQ8zTAfDRU35W9Td7xhpmkNVXC9B93CrfH1SOsq5Sm+MI2IeLuTuRXI?= =?us-ascii?Q?+SpCeZkACOghvOZVikNf/RnIDOJrnVg5P76Ffvi8hZYAO2SQ7Fpj9R3z1ax1?= =?us-ascii?Q?p6xI180pHDFQvwknoRCQYh/af2oiWYvB3w1GZTC/ORnzZUhlQt3/jL/PEotI?= =?us-ascii?Q?hRyWTjLcYPtuFue6xx90YWcUMKHHaQAFOkA0YddMTnzWJyMPXW4GcbGNell0?= =?us-ascii?Q?6IudyfwmXYZDdVdWpM/yR3Av9a7Nd8atj4tatmn58bOf5+UooyqrP0phOja+?= =?us-ascii?Q?aGaiyiqDYzNs4xyh2hLS7WABZlDDb/+m/PYHYZ7RK69QBl3lTilyOR2oHMLj?= =?us-ascii?Q?uKrpbIOUwxwBLhnsUZUydGrwDPcFllLzq6KXfiLGeelwW+2R7NIINyVyzDze?= =?us-ascii?Q?KQMQnMNfujzgNe9GSHBvn280SVbl8p2TgXFcp7e9iHZZJiAxffinA2Kl3CoD?= =?us-ascii?Q?LJgETREZ/BIAFCoyNy+NfidVaiGYnCYFIr0ckO7tALFlckJUwK6wj21sTvR0?= =?us-ascii?Q?VyKp02iiRj8LLZVeS6ZKqVhcRH8fe/eczyfR0ECJMRQVA4Mx9is8LVdxXbpK?= =?us-ascii?Q?WkLMd167LTA9me+N4PeRTcUtuvEfoSFQ0vLecbmy2PNJgKIeIs02eZejS8dt?= =?us-ascii?Q?bYDylvtikflNs7JfStJLyVM0gWQtvAYsBmUfjpUS0trZeisegBB/Rx1G2f2z?= =?us-ascii?Q?OW1OqhpRV4Dak/O76iMi8JoSCcv1nIPW7QXN8PDtcQf4+sY0eGbo4TRWWMVp?= =?us-ascii?Q?L3wAU5QysmKNKcBnYaNgj0BGkgO8Sd8AJuggnIla6OPa8gVo6myKn6Fq2etD?= =?us-ascii?Q?lEVcq0vuN+La/7Q8ZPSDRgEr2lLntSr8Qgmc4/7/PoTfhaCrFzeVHrF9ELNc?= =?us-ascii?Q?ResUWSHMEYtPqp9toG8jQ7WEg2YWjSWzQt3743jDq0DyEmCjet6tScczy9fc?= =?us-ascii?Q?bozetDO/v0tHKdYM/qBKwwUZr18VkY4MWBpTLFaYsA/2o9aKxzKmBRmqwXf5?= =?us-ascii?Q?1PI+5okOsgAHY4tVipGL/32/NgjeFUgbP9f8EYd3FluICwUf?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c22c2306-b722-45bc-969b-08deb63ae719 X-MS-Exchange-CrossTenant-AuthSource: DBBPR04MB7500.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:42:03.6232 (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: YXVVaaZka+SiWYf9FqV3HayzIoz4srmonRD2Xx7zFHWX6AC/lk1deINXniYY+ilskTCNkwPydNPGHoE60mNrnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6948 Content-Type: text/plain; charset="utf-8" In enetc_pf_probe(), when the memory allocation for pf->vf_state fails, the code jumps to the error handling label but the variable 'err' is not assigned an appropriate error code beforehand. This causes the function to return 0 (success) on an allocation failure path, misleading the caller into thinking the probe succeeded. So set err to -ENOMEM before jumping to the error handling label when the allocation for pf->vf_state returns NULL. Fixes: e15c5506dd39 ("net: enetc: allocate vf_state during PF probes") Signed-off-by: Wei Fang Reviewed-by: Harshitha Ramamurthy --- drivers/net/ethernet/freescale/enetc/enetc_pf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index 27d4bb65e017..b743b6d33ccc 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -962,8 +962,10 @@ static int enetc_pf_probe(struct pci_dev *pdev, if (pf->total_vfs) { pf->vf_state =3D kzalloc_objs(struct enetc_vf_state, pf->total_vfs); - if (!pf->vf_state) + if (!pf->vf_state) { + err =3D -ENOMEM; goto err_alloc_vf_state; + } } =20 err =3D enetc_setup_mac_addresses(node, pf); --=20 2.34.1 From nobody Mon May 25 01:15:09 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010013.outbound.protection.outlook.com [52.101.84.13]) (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 3B77533F58B; Wed, 20 May 2026 06:42:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259333; cv=fail; b=aVOFFcKbOCwAg9+3kZyGfNFZX2xD3WXOCIiR/KoazIMUcoaCmOTwKZdSCNL94Q+nz38Joq4Bvu4k7eghzHt3clieE3MBYZ5B3owlWGiR+ZALoddUtOKENgd4+S+9Ijtj0cChoEctKTbh0ItLNF4499ayz2mgO1T+qvAFDHzY8ss= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259333; c=relaxed/simple; bh=v0I85YJcxGiwmjXMcIbx7cZIcihKONCK73Fhu8uIfG4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=TTkktDpXLGvs4hQ184z/DYQ5kdQTve9zVE5xPycEo/BiC1L0fbc7A9PK/D1e/ZU+38lrYs93XJkDdLJNHJa1+jTIYqC9OjxmSk42RzGbl/IS9aUURk21ONTVZM8tjSpl2Z3DsgUIEnhVuYnsWK2ythXLiHN1pd6A+cyk6E8PkU4= 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=R6520YjA; arc=fail smtp.client-ip=52.101.84.13 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="R6520YjA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XNPO5szzTyQ/ZFNZpEQWLMWFJ3oAHS0TPFmVBY5TT48IN6b9ivpnUz4x4pPs+d9HkRPWav0OuPJIqaM2xLa+QBKC6vuhkP2isiz+kkpfzPeC/4TGodR1BwyL7r1lQzE2DQVe8RsegzFB5TC5G7ncZh8DJ0SfZLi+sQJzpGpQkVl7cMKYUinmy2BqthXmIoqSPWjm5dTpscFharjemC2r+E9gCvOBlWeO+1VwIgfYOvxuZMhMUVTpztzbSvQY5EXYcFlLxuxPfjmO2SQYXplGiqMAm7FDGYePclXE2c+HvrOLr2jwgzme/2Q5LwWGAc1S8aZTlrOVa/qt3uBJ13dGog== 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=vuplyGqa5jYAgMC+ls9wqvI06+BAVcpqAIgBVchaDUU=; b=egry2eLUeCT9tj4DoCjlkU+R6FfT3F/DlQOlWvhUVvUz/RZuXBxg/qEQ0nTpZC1gSD6uku+WesNPMjJK5nDE315PKUoG/sNL4kiWGnRNK1/cYoicfpnxxPa5TeG/TTx8xq+z2JcDuZ3JL1K+QF3Qyakxh4oNRmb9eM/IVvt4/CiyBhBl/ijoqzsJqcj6QEP7HAe+3wUbHBklicOnQvi4Uh30UM772u3ZGbmpHOyYN8+3/seA6KblmICC5gkeUUeTYE/XTuuGxgZ4i8292JLS8ArpSBtTKIpa6MGXZdw18KzPkjnA79EGl/94MS6o8QuRfUR8xTWLSZFhbCLihPxPPw== 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=vuplyGqa5jYAgMC+ls9wqvI06+BAVcpqAIgBVchaDUU=; b=R6520YjApQckbjDhjEq+azy/d6IKFE+uIgxTTnqWCf048GLhbBK06Bgnf4GmHqz1ZJe3qyvnSiULOnyL6icXwRMsc0Sq3QXqFUS1fx2pBCdk3caCJZM6wUvULOZAgi7OtzycvUMwvdNodsRMS+BGFJRRX03ypgoh3pK00G7C8Pmfr0qrobAeQk+9iBEQW5Izk3NlgJ//UELkj3oLD6UV7jSSBKzV9toUzaWasDYaLVvq2NVh7auGBd0Pxr2Q3ArII+AggvJtXQjrepdl5aLYNgBp2Rcw/jBkAbJJ54QwWgcCF6vKBM3xzVQ+NxV/wW6dXhSvFM1O6otfxgXjidgDSQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) by AM0PR04MB6948.eurprd04.prod.outlook.com (2603:10a6:208:187::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 06:42:08 +0000 Received: from DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7]) by DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7%6]) with mapi id 15.20.9913.009; Wed, 20 May 2026 06:42:08 +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, hramamurthy@google.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, catalin.horghidan@nxp.com Subject: [PATCH v3 net 3/9] net: enetc: add ratelimiting to VF mailbox error messages Date: Wed, 20 May 2026 14:44:15 +0800 Message-Id: <20260520064421.91569-4-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260520064421.91569-1-wei.fang@nxp.com> References: <20260520064421.91569-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0011.apcprd04.prod.outlook.com (2603:1096:4:197::10) To DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) 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: DBBPR04MB7500:EE_|AM0PR04MB6948:EE_ X-MS-Office365-Filtering-Correlation-Id: ab7b641d-845c-4467-da03-08deb63aea20 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|52116014|19092799006|366016|38350700014|22082099003|56012099003|18002099003|3023799007|11063799006; X-Microsoft-Antispam-Message-Info: W5lowwr1TaCXVTojNUZkJQ+7ApYYOUkMOGN2DXWOgwWfbk0SDt/l+hqrokknXkDsMfjpPvKHSmYwoLAAksPhB3/7bHjuKGx+x/nO/yyX9oYnA0fIB761+fG/UorY9IV6DBKhZrd6r0I9RPtzVy2hCKjj80swpm+pIxtQwzREkwUBWY40gezO6PWQvkGgRDfbNIEHA4gEqwZsX/WAVJ8Jn5g2gqftNL/3eyKIpBzFPC+vaeF9LISdGzgahuZPjLM41Vt1O8+to7u03YvDhyrd2zw07ta/jibVNX2+eybqR/OB3eW7aEBg5qhh8s/laH//UKEQA08Teai9L26sSS84WcpxL5IPQNiUJ6Uxca2UC5XUI5+v7dJ9sJbLjbzoJHBDXgOqF3J990WDTVsBGT75VyLa/Y5/zQ+8E8EF1QFbJ6KLzgzxyeRx6ZkbL/JqOt3wAbSeUz97rfUxXQ7wfKhxHPCt/N6YWogqxOrHJX3XkFeCjv+xRdTgTFspp/hz2k2m6Hz8jH3UNjyRv4kAH8INkjqm8YzIfrFn26upzFiE7qFaGc7RTd8oKL4X2o27iZEFNPq60RiVrd8o3zkoGq2N2JoSw6Z+GlmV50qyV713v8na1vg29lX1knaSGf05qb/rVC9ZGhG4UIdXgpRjaKOR0QTnmaagL3KxFobUmFX6nE+T7DBSwy25EKj58VV7uenr X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR04MB7500.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(52116014)(19092799006)(366016)(38350700014)(22082099003)(56012099003)(18002099003)(3023799007)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Dmra7ip1YdPc29mIB6p4jRMl1pCC1OoexQMV1fh8gFg9bE4bfkBeTsZ6HC1k?= =?us-ascii?Q?4RAicgR8QR3b4BaGG2B3klJPeP7cV4oG4zPlZFwCYSPF4/AZJG+EW6k+iN5U?= =?us-ascii?Q?xD4QusAVh0IK1r5tLUYrQiGE8fAlM3qn0eoPJ6fwRzp5a8Dhp3ztvS5yuWCC?= =?us-ascii?Q?eI/0Q60YtK7QZpupXnZsxH5MGFap696SyB8NJ/GjDgle6HhntFo8yRj9Xtci?= =?us-ascii?Q?GRzv9idfPQeTy9iFItse2qtXaVb3dFOlm84zcun0vvPn90Rx6n8FqocyJ4Ke?= =?us-ascii?Q?0TfdSyH2x6xb31WCKh2Ops5U2yT7KEPkNUSmIdsEa9GFP8QJualm7262NoCO?= =?us-ascii?Q?FQRA2gvacr4jTcJrxlL8eVfQAT3TEnMKwjKNCL2O94px9JalvH/YbvmFiwBC?= =?us-ascii?Q?Sn2dgQFBn0EyGWUjlmHCJTbHdViqZ5mSNNXc93/qE5vIySM87NFb8no1EOk9?= =?us-ascii?Q?qmAOeF/EEHtEt1oAqN0aPHEbePG6caG/0r9+AkxYvxmk9S+A2eGs/YyodkCG?= =?us-ascii?Q?ID1ciznyPaaHMRz6AGQTO3TsPGvBWZG1QzPamFjRMOUDXGET8EY9apqdIiZE?= =?us-ascii?Q?CNH/wfGZOAxIIcLkar/A29HVRIN5dhIl3DlMZ8fG/aMmYHZvCofN8E6d+MPT?= =?us-ascii?Q?SVenycJ6uvFYUwvu4HXbi4sdROQsdUthBKuubM6APGk3zFrfyjCC8B3JEWVt?= =?us-ascii?Q?Hgwh86/eyEdIJZIrSgAfcBcZYkj5BWgxT8abqKkCOhpBWKOsYGQMfax2QSyk?= =?us-ascii?Q?9oJCTXY0x48D/LdgwCP/oQYradnXo6Wi3QgZS/ydaE2Wt1CwDS/o9xZm30oD?= =?us-ascii?Q?AKynUl4OjO0gTyQuNtscYrextI9i6kBdb/cVobVPHt2/61sxRnYOWatwtO7v?= =?us-ascii?Q?xU2k8xFW6pVr5nLKRyoKjEaKRhv8ad572FjpgaVGPoj7KXIBarkkrPWgK1Uh?= =?us-ascii?Q?23VTIHTEZeHBRWfz4ZZPUTcavCx8TWUQiereUEEAm6SNXF8HZHdAC1Qy5OAk?= =?us-ascii?Q?eDy3MOKrMVKcpSCKKSx5yRFRPhsh798ikVCIXORHDYgeU1mTqFT5pcrPtct0?= =?us-ascii?Q?kR6+VdLijtTjvqzoCg331dVnsW/cEmrtSjRnPale85JL9AKn+u9TTRaeKQgn?= =?us-ascii?Q?K11siZA+/bR+Zj8VXoDGr3Y0UHncW49BuA9DDGUOfylq9JyTlJ0H/dMEt/nt?= =?us-ascii?Q?0ifGRNR4PbOgNxBVvGZs+AVPCCXbee2PROz6CSnSqOcOyhsxNQnc348IX3m4?= =?us-ascii?Q?K5VCYQj+gzEeOsGEczs9g3kAUP3h9vjd4UIdHgMxC2m+6COtxS5NWBRACk5S?= =?us-ascii?Q?mBE6lGzCbL9KVLrU94+rtjdm3Ub2DUuCcTWhTYASGUIyqF5wu3wz8ojKcuqp?= =?us-ascii?Q?uKhD+POaiAE9j0ZYcZ1LaWBAV88627HMt18QdhxGRlC+rIucfDd+nwfD+S+l?= =?us-ascii?Q?7vcHXkDhoVy2zIm5dkP4VG6VfjaxavDawPF4j4pRcPKVHsOK6683LMV/UMLQ?= =?us-ascii?Q?WMTl++qlUlxHDgPAaQ0A/iywOpvIfTfifxrHfPob9vKpxR5j4hDYTuuEJ9rH?= =?us-ascii?Q?gzsZmYrlc2n9BVlf0k9UL93gW6W8aZVSNm3MeQRsJAq6AzFer4twsYafkQgq?= =?us-ascii?Q?jh/6bkCdncNIEoL3efas2buGPqaTgqqOHWIKL51sgXx3Kh8En58cyCSnuosV?= =?us-ascii?Q?VaID3H08x80kv+KwiTPWtZ8xCr/8F9jsQa6ICoKUYMEqHP9ILB9bbKJ8TkLm?= =?us-ascii?Q?53bDwrbG1A=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab7b641d-845c-4467-da03-08deb63aea20 X-MS-Exchange-CrossTenant-AuthSource: DBBPR04MB7500.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:42:08.7979 (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: A659ge24WHStGb6MLbjzNLdnSfbzVhfHXGH+uwpC+XSIXlP0VjcW6yMNZX8IvwTffcxIjl31W6EUJ1Y6MAPUag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6948 Content-Type: text/plain; charset="utf-8" Sashiko reported that a buggy or malicious guest VM can flood the host kernel log by repeatedly sending VF-to-PF messages at a high rate, degrading host performance and hiding important system logs [1]. Fix by replacing dev_err()/dev_warn() with dev_err_ratelimited(), limiting output to the default kernel ratelimit. This ensures errors are still logged for debugging while preventing log flooding attacks. Link: https://sashiko.dev/#/patchset/20260511080805.2052495-1-wei.fang%40nx= p.com #1 Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support") Signed-off-by: Wei Fang Reviewed-by: Harshitha Ramamurthy --- drivers/net/ethernet/freescale/enetc/enetc_pf.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index b743b6d33ccc..dea3a92c4722 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -494,8 +494,9 @@ static u16 enetc_msg_pf_set_vf_primary_mac_addr(struct = enetc_pf *pf, =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); + dev_err_ratelimited(dev, + "VF%d attempted to override PF set MAC\n", + vf_id); return ENETC_MSG_CMD_STATUS_FAIL; } =20 @@ -520,8 +521,9 @@ void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf= _id, u16 *status) break; default: *status =3D ENETC_MSG_CMD_STATUS_FAIL; - dev_err(dev, "command not supported (cmd_type: 0x%x)\n", - cmd_type); + dev_err_ratelimited(dev, + "command not supported (cmd_type: 0x%x)\n", + cmd_type); } } =20 --=20 2.34.1 From nobody Mon May 25 01:15:09 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013026.outbound.protection.outlook.com [40.107.162.26]) (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 5E207346FD2; Wed, 20 May 2026 06:42:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259340; cv=fail; b=aNPO5AVN57TF1lqA8SDtLZg+BjZmuVcRBmsHhL/Jg7DbihNuNMEEUs9nJ7lNU9m/Cixa3IvoMIA/GwqymddNutiV363JAeP8q7KNajqRSrSPHaYxI6x6SuajD2LWtPEiRiWkEn82D07ukpho9rjgbCJZqGAyX27B5hgbQwiVUF0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259340; c=relaxed/simple; bh=rwTEZ7lsBNZOmWrkfw50Im7FlapGGbRUlYlwDq5KGCo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=bYhX+4V1GIqlsG4Fnd2/3eCxCfSOCKqJ40t+KOZBZ2bZUDG4GnnTLbFVMlPcPXarOOuvDCqxR8ofj+Ehdue7UloKPnosh49b96lGIobnYnh01imG19Rfmt3zoMxtJIKQ0edu1qZyaq25h/FLUcuM2xzxJEgNqg47sIwzw0+Czk4= 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=APaltmVq; arc=fail smtp.client-ip=40.107.162.26 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="APaltmVq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Jg/DBN+CNnMwdXTJkO8c/XOvbdAlX6ozRNFauHI94sJgjIDE28HvGj3uT7EDkgo6kB1oWCjZH/ugAJLpX1LIGMbjwBdwgJvzi8hnBfd8754YoXEhj5SlzTJskqe3FeY1r9kK6ZjmipFbiT6yaAwBCFDergvg5BuWx3Bq/lk7FU4UpUhN1ZR/ZHekI95bvHwPjLyT6+hSj80hqKTqAtqRXpgm5qJ7EbH+jAfo3JyU5ZLY075UFniOWhNGfqlPTI1ltgUXRkgaeTn9U8ya+/2KSsqpOnjViBmY0miAQVD262pBmWfIPhqyzJJcmhyTT38JffC6WfFkT/aNd9/28L97uw== 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=rkTREyA4r38BrZKCm1xzkLGKKKjwInsg0ikOwlOn3cU=; b=fY9XC/Aby20bVbcW2bxYhRDD+bad117PyTeJwTvOY5ZUEYWRHE6lciaKelGFyDocyU48m1Qp4r6+gIYOC4pH9tE1hfzjF8nvlfaYVkki1S3WeRL32RG3GYIgG+Y0dywQVT9sLzS1iNodWWbDuMqzpBsDWyLkx9CzzGd2cEx7W5/tcoFBcadNwAdONQCuN1jXXFp/+yD+nFU42NLrFBjzyusHehs3k3a7MlMUJJNshfvPqILIL/dS3Cb2IW6H1MFY46N5YJj57igCpKfiNuwA8DidIHKLioMbfJ5l2nESpG5HHrcFEglh3lWBVrqheTsrGHNtVS5oESz6S1ryi2Efhg== 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=rkTREyA4r38BrZKCm1xzkLGKKKjwInsg0ikOwlOn3cU=; b=APaltmVqvpARRK8//aIfwZUw1lxtXT0KlUAViL4rXcwqLqjPPAj99o/xhEGC4mLLs8HJR/i+mSJ+OvPqzu+xXIuW88VFcOMvRcOAE9rcf7hkhZ5va6bM7+GjZ/bwXAcbH8sJYjd3YgW3Vs1vodDbcZiV+4JlNMxFEekF2fiXKMbrD4OnYtnBbi7J0MyCtiK0/NoFaYRPbrc2AxdEmw6uWvtMFXB1iZ8qjm1y7tuH/yZfzqj07yAn1R5Zj4ySV681oOwr0RIlGt+zI90tqkuvIRv7IdNOKNNuRhOYFcaGrolImbbpjGzOmDc6AMfcs10Ox7/WL0jtxoOhrutNElLOLA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) by DB9PR04MB11659.eurprd04.prod.outlook.com (2603:10a6:10:607::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 06:42:14 +0000 Received: from DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7]) by DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7%6]) with mapi id 15.20.9913.009; Wed, 20 May 2026 06:42:14 +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, hramamurthy@google.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, catalin.horghidan@nxp.com Subject: [PATCH v3 net 4/9] net: enetc: fix TOCTOU race and validate VF MAC address Date: Wed, 20 May 2026 14:44:16 +0800 Message-Id: <20260520064421.91569-5-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260520064421.91569-1-wei.fang@nxp.com> References: <20260520064421.91569-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0011.apcprd04.prod.outlook.com (2603:1096:4:197::10) To DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) 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: DBBPR04MB7500:EE_|DB9PR04MB11659:EE_ X-MS-Office365-Filtering-Correlation-Id: cd421856-9945-46ef-7639-08deb63aed3b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|52116014|1800799024|366016|38350700014|5023799004|3023799007|56012099003|18002099003|22082099003|11063799006; X-Microsoft-Antispam-Message-Info: 1Gp/5JmzK/tvJ4sjN4CGxKlAWnWri61xFiwO6GEhaSCKWzBszwoTAR7KhKOBgYq37rnVc5NzVslribrps9OMU6oNcVA602VCbUDZH/EVoxYb4h84T5DS2fzrM8VDsGqH5Igh2firyutKfi6ZAMa3z+17Otl/gBleKIT8PqGYiiOIuF2SGK9YFGouMhgNYvkwyvshflQBdXYFKYruX/pGH0gmlJaqD6ovQFuntF5EHm5bq90GfJF+E3XprsZhMqe0a8gAkY4ziMkreaJ9z3hW+8kwo6569rme2Ze6qgJZC1H/YOLp38JsDFuxKg8wd9d88A8q5QSGFXI8XHkXaTqKKU9pAZeK42dia7yVG4TtAhNuxQJGgVBlOv0B/xIQKQ53sAk2CSlWKMou5OqgsCULEjoyJ/RJ6TELLlyG7UwOfe92SfAMSWf51TcGjH3hgnwYt2tefKdpip5FTywxE9q5/YwEKR7uJ66dkD4LqTpT4keL2lUGyt05dU7rciEMKzw/yyxXpMRNc6yOjIEAAJR5BfRPYzcArKCn6C9ZApkf0XjXwiLqnbUa2uTBZ0tdacSj3jbo9VeFOZCebXPheqXmlNJC8AU+gP7kG3JuZ/2faU6Q2eoAPb1IUy8yMybp7Iy9zI2WYJegSdgUMOSp5DQqhQGNyI/mbiRsz03zhvhLEdoaMJns3NdGRXC1pkCYfctB X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR04MB7500.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(52116014)(1800799024)(366016)(38350700014)(5023799004)(3023799007)(56012099003)(18002099003)(22082099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+GQYy9rEuGZR9rawP8T2tNM4C4Ij4CMWeUfrVQ0NPC9rBJQlOBSECso8ti6i?= =?us-ascii?Q?K21jJOb1HU0o6FJSn41d/Dm9z8MW4m07LxOq/HpXNt8BrFEzXwIUeJUqYISe?= =?us-ascii?Q?SMOyCNk8v+PRRN7CasphXj03wx/xr81Eao+JL8uXlsiwRUuN10SBac6N60B3?= =?us-ascii?Q?Haq3Ws1HHgwE0CbrFD7E5PQP5rIfpNNVd14nXanaVc8ti3Omdn5ttye75Cfg?= =?us-ascii?Q?dyFDFQlZ0happSLWttUPrTAdBPGbEHVH4ndd9F82TmJKL2tlYx47YgV28YMS?= =?us-ascii?Q?gIhMBoBufdq6Ln4X1hjUq+x7sthSBNogNi2WJxlTG0LujL4XhBvR4puF8xoj?= =?us-ascii?Q?3k1NQk5taC7DFtkwAHibYFOszDERyMapNuzZ2kxBtOh1uiq2sRgwVCyTLbRY?= =?us-ascii?Q?nN30DRJxoRY2l6J4Xn+dA2QNPvKtOYi4ryFu4oJZDER2W4IT8IpH+EoViNH2?= =?us-ascii?Q?QehQ8cRnizDpswtztuV1JF8D5ifr3NobWwLR4GF1oDfaE5PxpDSSdJv7vupQ?= =?us-ascii?Q?fJe3gi4TZ9tRWq8QyQhyTtxSgQmZAJDXe5N/4qbVmcUqS494d3taO7kpCza9?= =?us-ascii?Q?tQ+7rd6P1xMaAvr67pt1fwTuZNtDdG3pWvP/p6QJmIXOqkAHpzcFSW9J1LOA?= =?us-ascii?Q?gf1FYHsRE5Wn+8IFZKjiNJxQHB59E/mBHilscpnXoVgstub1sdknIEGslH7N?= =?us-ascii?Q?PgpdwZr3/uzsSO1mTuN8p2Sgh58bZk76ZzQoQ2uRmsBkd9MipLE2QUMt8kQF?= =?us-ascii?Q?/4T6R1wMFAPXVR9tLrk4T+cIBeIrESFJkJkfJRFSAa7JI/7ZHFyU1NATDKgK?= =?us-ascii?Q?br6ISl4/dgxy7mimsbrRH3GV8RA6wWwYla8mU/T6WAmROkH2MUNGvhkNmsem?= =?us-ascii?Q?bIakFUNW9phb5j9heJxzVit7Q+6yvkpiUBRxf/1Zcm/0CX4zDTdSMUbn1Rtj?= =?us-ascii?Q?KfyCUUDFarI6Wxe1vkkT4Wo8hW5xcK0PFx9w4CbQnAmMq17+nFzC4+I9Wh18?= =?us-ascii?Q?slDYbjn87IOx9OY/FJ/rF6dUz8rIHLdN3cyAw/NruTtIHnKU3JMIE5sKHZM7?= =?us-ascii?Q?iDJhEePA4DRwfPxwjGinPcROgyLyYi6qDEWbvLgRvOuZ30cJm+f0shRG/Bbp?= =?us-ascii?Q?+YOTiz7C4Cf/9Qmf9/zhcDjec8QxKIwsb92ZZkQGWmM/wFEdgMTujkrtvIhH?= =?us-ascii?Q?Qj+F5Lf47nGzqhzKW4xUk2QdYEEZOKD9hvbUf6xQ3hfZAyiOQdwOZCVL2i72?= =?us-ascii?Q?ZacX7OFIGUXz52LBDx+Mu9edawcPH0VaGv05XWZOHEtzuzLHZY4dVBVlAVvs?= =?us-ascii?Q?ELuWkiSIgjRCUclK4R1w/rgC4sw8OS3IY1cqb1SypxIbLcXYeuPwsj+YlwOw?= =?us-ascii?Q?Gbgp3y4G3pBZPMKo7ixR3DRNA/iouFFWT9xQT+ZwdcDKECkygpRdoXD5QPPk?= =?us-ascii?Q?iZ/s6syNTW8Np46+qvIiMyF0E6w3+j8Wibm4wD84DBnSZqqrGAjBP6zzczIN?= =?us-ascii?Q?8LV8H+yuUF4Xv0fKc9igIfbuGUQ+r8lzXCOoINyOBWAgawxhHpke6t+z/g/y?= =?us-ascii?Q?JtJi9+rcBGkgCM2YPQTl/J7qaWhn9ludzqyQyBfGMBqViwEY6OzMWmLlxswy?= =?us-ascii?Q?gzWL/lI3C0M6dUkiK+KEIpR5HolFoznpm8pobiXSLGytq8iZ5AFAZFc8Ts2d?= =?us-ascii?Q?VhGS9SURga53AUECA1RI9MXaBS8PDJEkEstiDVfjKW0amaoHGutZglMrCu2L?= =?us-ascii?Q?lFEEmbEvqA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd421856-9945-46ef-7639-08deb63aed3b X-MS-Exchange-CrossTenant-AuthSource: DBBPR04MB7500.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:42:14.1963 (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: nbsDjdwmhe4gXa3625O5wmB+V0lg4dwIbf31m03H5YHf0ucpeS5GO7JeShOhv8N7ccGAH83sbnVOHfirjcI91A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB11659 Content-Type: text/plain; charset="utf-8" Sashiko reported that the PF driver accepts arbitrary MAC address from from VF mailbox messages without proper validation, creating a security vulnerability [1]. In enetc_msg_pf_set_vf_primary_mac_addr(), the MAC address is extracted directly from the message buffer (cmd->mac.sa_data) and programmed into hardware via pf->ops->set_si_primary_mac() without any validity checks. A malicious VF can configure a multicast, broadcast, or all-zero MAC address. Therefore, a validation to check the MAC address provided by VF is required. However, simply checking the MAC address is not enough, because it also has the potential TOCTOU race [2]: The code reads the MAC address from the DMA buffer to validate it via is_valid_ether_addr(), if validation passes, reads the same DMA buffer a second time when calling enetc_pf_set_primary_mac_addr() to program the hardware. A malicious VF can exploit this window by overwriting the MAC address in the DMA buffer between the validation check and the hardware programming, bypassing the validation entirely. Therefore, allocate a local buffer in enetc_msg_handle_rxmsg() and copy the message content from the DMA buffer via memcpy() before processing. This ensures the PF operates on a stable snapshot that the VF cannot modify. Link: https://sashiko.dev/#/patchset/20260511080805.2052495-1-wei.fang%40nx= p.com #1 Link: https://sashiko.dev/#/patchset/20260513103021.2190593-1-wei.fang%40nx= p.com #2 Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support") Signed-off-by: Wei Fang Reviewed-by: Harshitha Ramamurthy --- .../net/ethernet/freescale/enetc/enetc_pf.c | 39 ++++++++++++++----- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index dea3a92c4722..09c642040892 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -478,21 +478,24 @@ static void enetc_configure_port(struct enetc_pf *pf) =20 /* Messaging */ static u16 enetc_msg_pf_set_vf_primary_mac_addr(struct enetc_pf *pf, - int vf_id) + int vf_id, void *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_cmd_set_primary_mac *cmd =3D msg; struct device *dev =3D &pf->si->pdev->dev; - u16 cmd_id; + u16 cmd_id =3D cmd->header.id; 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; =20 addr =3D cmd->mac.sa_data; + if (!is_valid_ether_addr(addr)) { + dev_err_ratelimited(dev, "VF%d attempted to set invalid MAC\n", + vf_id); + return ENETC_MSG_CMD_STATUS_FAIL; + } + if (vf_state->flags & ENETC_VF_FLAG_PF_SET_MAC) { dev_err_ratelimited(dev, "VF%d attempted to override PF set MAC\n", @@ -507,17 +510,33 @@ static u16 enetc_msg_pf_set_vf_primary_mac_addr(struc= t enetc_pf *pf, =20 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 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; + u8 *msg; =20 - cmd_hdr =3D (struct enetc_msg_cmd_header *)msg->vaddr; + msg =3D kzalloc_objs(*msg, msg_swbd->size); + if (!msg) { + dev_err_ratelimited(dev, + "Failed to allocate message buffer\n"); + *status =3D ENETC_MSG_CMD_STATUS_FAIL; + return; + } + + /* Currently, only ENETC_MSG_CMD_MNG_MAC command is supported, so + * only sizeof(struct enetc_msg_cmd_set_primary_mac) bytes need to + * be copied. This data already includes the cmd_type field, so it + * can correctly return an error code. + */ + memcpy(msg, msg_swbd->vaddr, + sizeof(struct enetc_msg_cmd_set_primary_mac)); + cmd_hdr =3D (struct enetc_msg_cmd_header *)msg; cmd_type =3D cmd_hdr->type; =20 switch (cmd_type) { case ENETC_MSG_CMD_MNG_MAC: - *status =3D enetc_msg_pf_set_vf_primary_mac_addr(pf, vf_id); + *status =3D enetc_msg_pf_set_vf_primary_mac_addr(pf, vf_id, msg); break; default: *status =3D ENETC_MSG_CMD_STATUS_FAIL; @@ -525,6 +544,8 @@ void enetc_msg_handle_rxmsg(struct enetc_pf *pf, int vf= _id, u16 *status) "command not supported (cmd_type: 0x%x)\n", cmd_type); } + + kfree(msg); } =20 #ifdef CONFIG_PCI_IOV --=20 2.34.1 From nobody Mon May 25 01:15:09 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011070.outbound.protection.outlook.com [52.101.65.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D2B633469F6; Wed, 20 May 2026 06:42:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259344; cv=fail; b=Ka0pZ0bXqThPSFRnugsqEal8/xFntn+DRTSOTNnjAROppo2Sl8fbf26QNJtrWTDFOzGY0ALJKXVwcO+KUMs3L9ZKD88atGMRT02ah5rFW2+psuq7WPXIaQ3AofuzabYh9ZGhI1AfpDmxu8guMLnkJP03kmOlNA5E3KbJoU6GOJM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259344; c=relaxed/simple; bh=iJ8xKL4NFfoO/Orzm2Q0Jk2wGmoB+Ky4soBomXdxBqY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=u3D42v/l6KM+PCXUiowUlB+PJC9WDTyPhqNhruk3yfjGSAzkJwa06N/XQjo/ZEE0QGdB4A1wLumjrPrLaAaEc6DgREs/9sBdJgxqgu241wWaJKdPon8BAYLCdncRrpHvsBQHJwifFPcJTwYyeJ71SctgkRtkvoj/3ShASC8Jvvk= 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=fLqHTKId; arc=fail smtp.client-ip=52.101.65.70 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="fLqHTKId" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OcwMBRI6yPor+5yWzBC6b347k/GchsVRCM+T7yHgssV3aBIuhKQ3okUfofaDIUvZ/vj23r4Fugu537375u0FS0fRVqQxT+9QiGGHAG0ij18jy0RQzIs1uTJrZS23p/8xcpSnIsTKMRONIrJa7PsmorBV2K4/YjP/yG5/bfU5DdQOroy67D+SYPu6nx8yOoQL6G9bN9YIRL4no4gLO5TCG1xBDDQ7XASe0Fe5I59CadpQFqzoAtTABdQI418X0PajvF91HTcPH9D7gps4bK4sGUnXsGJNPHvSDX+XpNPcFtuGn+acDcbcDORYX2EdVXy2o7IkC79pvjIxmqZFJRFQwA== 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=9yFm0BBztAIAy4lcNYSe3G4Bs+FN2/nw1n8cK/ubYrM=; b=C3QMGqoigJFNBg6Jx91I3Wb97axXMUt1o58Lw6PW1V23dx2rU9pYmQEgn+KZP7EZKKW+f0g30TdD33vZ503wXEvq4uPtEnFEP65SvQ1F31mi5CH6ayO0mGTtz06wR5UnLry6yFLbU7MP0v/Hq273yMnWx6k+bYz+p69pMIvvtMgGD4ZOZNd3PlCrBwO4do4K3Xg74c+QzOJvhqyYrLQYeyzDdqN/Y8qTvy+uDi73ZRwxwbrt8UxtUfJqqe9RotzLD3CV5BqwjFPkSJ8RPwvj6qKvJarjXPVTb2thg50/grPkS+j+LoJ2pGQhTH2J6fxIiXWXGi5aOg7BTmTKik17Ew== 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=9yFm0BBztAIAy4lcNYSe3G4Bs+FN2/nw1n8cK/ubYrM=; b=fLqHTKId5vJXoP4OoZVU08suZgDlJKQySMpeq1FsXA3nw8Qk4bQ5oJTNzxasyhKFZDXc5DpnRPk06JOJK3zdPu/FORnrASchN1ywaax6L8twdOXgP9K9c6HH58oV5QSHuh5foFxRi9o0kThfSsNWToinwWxz/kpmWpxFrOX9kqmVDUYWqnt65I/VnP/fZ/Vvgmt/km2szcTJnokgf962sPLQIQYNXvRQminUbTz9zVkjncuomFOhFo72xuIwahGZ2WEehT/vRSSWVnaG8iXZokwXezIfI0uUXwc59OiKTVr/LQjR38pL42PDRsi50IG/j5Xo8DsjIhG8mLJUgMUMaw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) by GV1PR04MB9104.eurprd04.prod.outlook.com (2603:10a6:150:23::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 06:42:19 +0000 Received: from DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7]) by DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7%6]) with mapi id 15.20.9913.009; Wed, 20 May 2026 06:42: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, hramamurthy@google.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, catalin.horghidan@nxp.com Subject: [PATCH v3 net 5/9] net: enetc: fix race condition in VF MAC address configuration Date: Wed, 20 May 2026 14:44:17 +0800 Message-Id: <20260520064421.91569-6-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260520064421.91569-1-wei.fang@nxp.com> References: <20260520064421.91569-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0011.apcprd04.prod.outlook.com (2603:1096:4:197::10) To DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) 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: DBBPR04MB7500:EE_|GV1PR04MB9104:EE_ X-MS-Office365-Filtering-Correlation-Id: e8e3d948-bec2-4bb7-013b-08deb63af068 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|52116014|376014|1800799024|366016|22082099003|18002099003|56012099003|11063799006|3023799007|5023799004|38350700014; X-Microsoft-Antispam-Message-Info: 0bcqr2AchwqVVcdP86RqP4NPhL2l1iCkJKCLMa5xZg+ivFs0Ut9tZq0g74bk4yY9P//zwinKTDttafY7Un9NtVurSXGG/PJN9GGGHP4vI6fTYTndsyQmpmOgfZHY0MLd28Wuk4XturEJEETwwxwkhTXRrcNMiGEXEc0YMMPbFYkdpIFOH+XcEQuZIaXsLUfy5VFmau3tc1pFS+QupCRNeqlPNbYizW6vQ662HFTRmBtCRp9M5ZDvijHW75CXeXO3wrq3cqRLLIIk7qDT59vI7u6UXOrGbVRUJJNECJAGMbKpsP/Q1T+XKreIJnslsjNQdGD8akUyUYGQ0wbHPuJI/KE/0caYxfVaM20WX7YYF+IiRkFjdL/J4Wz9/zjKcvsJbcSj1LSW31QwJc2IN8/aSGBasSs4NtypIjQUT2GvbOlA/C44GhHWNYiwK2bytKiBxIGkt86Z+4mv6ew1Y/x30W6BlxguQE+hdySTruhI7RHkQTGmU2gGdlgjP9/WWKh1C6qnwsSxcP+rT3OHQNMsZFWy/o51Bz1XgyDu6d9PwR8y18i8gYV34sPrXV/VHnHHKK9EIZbOyapT+BLdIKp6i3E4UKUJjJSHBbj33l3+MEHtRc0rJeh/1F3lQaC0xngVRcuMeuhIvgseo1fE7Hk0Jl/3GhaBp4KuHZ7xqZXlGUOYcPST3R8aNbRt5xcCovRO X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR04MB7500.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(52116014)(376014)(1800799024)(366016)(22082099003)(18002099003)(56012099003)(11063799006)(3023799007)(5023799004)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j+lUVegKBGuOxT4/CIa4olnaVXUEeDDHrBepWeUcIoqLb09RqkbmyQ3Psjtu?= =?us-ascii?Q?noIRfu35+HzNzlgMq6ZugJeO/iC+FHP+w0XjFaZjwGg0SS/Gneo+Ogs0nH/f?= =?us-ascii?Q?CYEpKoEbH+w1nacFAQ2tX+0MgPu2BgsRyZKLpdB2AxWmjYHxDWMuhmKs1kaL?= =?us-ascii?Q?PIO1UKKDmW30yKGyPDWcWYPbc/L2p+iblzrjuNim2ZNM/joz9Wvj7ZgD6xyj?= =?us-ascii?Q?c+KdQPiUUQXIcyA6hcFtJWyGpgtWlqGe7uzJxwY6aSJoDc4k3+5dgrB+qGs2?= =?us-ascii?Q?P4ndUfpm5ttwotcOZw3w9iGGcrq2/ugQwhJuA/xyt3sza8CpbMR2BZixSElV?= =?us-ascii?Q?NpfXNjYhwdo/jApPzRgbulfdEAXnrk9dmPlzlHrDtX4Xrfsva137xjuNybK7?= =?us-ascii?Q?mrGzrRXnfQIps1LURkZgiriKK7d42LJb4IhjqE7HFFWGFumKp8QK4uTrUDrx?= =?us-ascii?Q?uSqB9rV4jRE1zbwXG3+V0arDYGWKGlU5MBlalJ1f5Kn5FJh4C3VQdRb+fqB0?= =?us-ascii?Q?fpivTegmyPLcVanyl31qVnMnmuKZoMYLMy/J02CSzibBjqA5OjZJPenvz9XD?= =?us-ascii?Q?XUbDtCmZsUaKGR82IUBgaFzb/eWQKAImuOxQKAogwoYDWvS8enH9dXco2ZWp?= =?us-ascii?Q?qWF+8L9u2zF4ULgYMrGZWzGXK2oEYsxRKirK2vXMHMRcEH58FDGyqmgdzT+A?= =?us-ascii?Q?yyHlQ9XrsSTeUrNOBOQQLYZzoNJ6ZCFtOzdvf56DUx+HLDmkjxYZ01pcbcFX?= =?us-ascii?Q?rdCNw6c6GnJDrdXfElWzg30JtWrWXYoh4MXG2ZfEzGxevTd486cyRatEbh5D?= =?us-ascii?Q?RL+LyPyNoYzr3BY5wS/0KPooOVQe9sfooO+Do11hxXt1EvkZY3WdJ9Sp6ql/?= =?us-ascii?Q?DpGJxAF6QYepKpo5THzlBmJctRZ4NoqTs7hukj/PONcIgrQfedO4PxO/DCwX?= =?us-ascii?Q?AGJ8HPSukDXHQuGl5y6vC/ff07L1j7VPVBCB+mPUHyCxh7fpn1OO96Dft1XW?= =?us-ascii?Q?4WHCnF4htWi0JfblPDyb2CrxftS3mtJXHcYlfNqXXvbwbSnrQ6hvCM9+8OLl?= =?us-ascii?Q?hIOcRX+V0pwvNb9zlytATUigULZMbTdC9Wm+1gfMkKczoZ2R4hpUXxT0UIMp?= =?us-ascii?Q?TEl7/NSOh/6ymb1ktMmdUF9vUFZrL1hQuziXXAyAWldr4sncBEDfPSXSd1an?= =?us-ascii?Q?rI0sXtHGdaDNMQzyAC8Ra4guThm0jsNTHttXgHQgIXHLMdMBEZ3B8/L4jk64?= =?us-ascii?Q?xqZfC8NoEicxeM9lAFC5/fCWoVO9fURQJSx6rbOrSr/X84Z2c3WHdhW60Le2?= =?us-ascii?Q?b3Sd1TtA78OPhJOr6r2BnpukbtIGhUpfz5B6/kc3l1CnM2ix7CXIGw3rFpKg?= =?us-ascii?Q?GUZurB0dNgXBRDOQ4lJ1uFmWRKNeawv0FH2oo6Pb9loi7oiI+Cya1cJwwY7E?= =?us-ascii?Q?7SVxpii3ppbDoTE6dSVQwTYasEt3DKAGiHU+MHRhvldeJ/50rjDCdfOovtqj?= =?us-ascii?Q?waS6daM338EEZ2Y3rNdfIhPa2K/VGL2BUbl+IptCHV25TU5XyOiEWjJLWofE?= =?us-ascii?Q?cWVUoyG8pQKJ9vDEyo0QqxSDqq2ivxAEBHwwlgLjAZEB36mBNlkzOLERaX3Q?= =?us-ascii?Q?6Ueo05Swj2CvYfp8Y9FBu7qGJpaYNmuy24skvy1OgNofwAM1x8SxSVQe/pqz?= =?us-ascii?Q?RF0a69a1cuNgoO5MsbbiUuhxTDjVnXkkkM4c9bIwNX5EYAF1rKdDW3zXk+K5?= =?us-ascii?Q?C5I2fTd9wQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8e3d948-bec2-4bb7-013b-08deb63af068 X-MS-Exchange-CrossTenant-AuthSource: DBBPR04MB7500.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:42:19.2934 (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: NSva+jdfOgl9ncpqhLbBmdufwnadMeVE1XcNpv8s15y8XANolJN9h+U2yhKrVzLMh2lkyg99lAW9T9a7CEbgSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9104 Content-Type: text/plain; charset="utf-8" Sashiko reported a potential race condition between the VF message handler and administrative VF MAC configuration from the host [1]. The VF message handler (enetc_msg_pf_set_vf_primary_mac_addr) runs asynchronously in a workqueue context and accesses vf_state->flags without any locking. Concurrently, the host can administratively change the VF MAC address via enetc_pf_set_vf_mac(), which executes under RTNL lock and modifies both vf_state->flags and hardware registers. This creates two race windows: 1) TOCTOU race on vf_state->flags: The check of ENETC_VF_FLAG_PF_SET_MAC and subsequent MAC programming are not atomic, allowing the flag state to change between check and use. 2) Torn MAC address writes: Hardware MAC programming requires multiple non-atomic register writes (__raw_writel for lower 32 bits and __raw_writew for upper 16 bits). Concurrent updates from VF mailbox and PF admin paths can interleave these operations, resulting in a corrupted MAC address being programmed into the hardware. Fix by introducing a per-VF mutex to serialize access to vf_state and hardware MAC register updates. Both enetc_pf_set_vf_mac() and enetc_msg_pf_set_vf_primary_mac_addr() now acquire this lock before accessing vf_state->flags or programming the MAC address, ensuring atomic read-modify-write sequences and preventing register write interleaving. Link: https://sashiko.dev/#/patchset/20260511080805.2052495-1-wei.fang%40nx= p.com #1 Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support") Signed-off-by: Wei Fang Reviewed-by: Harshitha Ramamurthy --- drivers/net/ethernet/freescale/enetc/enetc_pf.c | 10 ++++++++++ drivers/net/ethernet/freescale/enetc/enetc_pf.h | 1 + 2 files changed, 11 insertions(+) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/= ethernet/freescale/enetc/enetc_pf.c index 09c642040892..8e11a023d516 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -252,8 +252,12 @@ static int enetc_pf_set_vf_mac(struct net_device *ndev= , int vf, u8 *mac) return -EADDRNOTAVAIL; =20 vf_state =3D &pf->vf_state[vf]; + + mutex_lock(&vf_state->lock); vf_state->flags |=3D ENETC_VF_FLAG_PF_SET_MAC; enetc_pf_set_primary_mac_addr(&priv->si->hw, vf + 1, mac); + mutex_unlock(&vf_state->lock); + return 0; } =20 @@ -496,7 +500,9 @@ static u16 enetc_msg_pf_set_vf_primary_mac_addr(struct = enetc_pf *pf, return ENETC_MSG_CMD_STATUS_FAIL; } =20 + mutex_lock(&vf_state->lock); if (vf_state->flags & ENETC_VF_FLAG_PF_SET_MAC) { + mutex_unlock(&vf_state->lock); dev_err_ratelimited(dev, "VF%d attempted to override PF set MAC\n", vf_id); @@ -504,6 +510,7 @@ static u16 enetc_msg_pf_set_vf_primary_mac_addr(struct = enetc_pf *pf, } =20 enetc_pf_set_primary_mac_addr(&pf->si->hw, vf_id + 1, addr); + mutex_unlock(&vf_state->lock); =20 return ENETC_MSG_CMD_STATUS_OK; } @@ -989,6 +996,9 @@ static int enetc_pf_probe(struct pci_dev *pdev, err =3D -ENOMEM; goto err_alloc_vf_state; } + + for (int i =3D 0; i < pf->total_vfs; i++) + mutex_init(&pf->vf_state[i].lock); } =20 err =3D enetc_setup_mac_addresses(node, pf); diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.h b/drivers/net/= ethernet/freescale/enetc/enetc_pf.h index ae407e9e9ee7..35d484858c7b 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.h @@ -14,6 +14,7 @@ enum enetc_vf_flags { }; =20 struct enetc_vf_state { + struct mutex lock; /* Prevent concurrent access */ enum enetc_vf_flags flags; }; =20 --=20 2.34.1 From nobody Mon May 25 01:15:09 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011024.outbound.protection.outlook.com [52.101.70.24]) (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 83AC234B183; Wed, 20 May 2026 06:42:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259349; cv=fail; b=AZTDu/2hfTlvzQH2+G02RaTRLdwj75dAKZEmVLlZ3HIyTmFNvskT6prfboEh/BJAQqqaqjMHbWshNnz0CkJn1KYaLkL6BR/deu5ubfT7h+dRs+l03yLsVt/DIPZNm6iM6Fhj+/3rdj1RUCuu6hHaRoQ6GSponxyHtG4rXhoQLjQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259349; c=relaxed/simple; bh=qmlHC8roxEDs/UQ7wsr983jQ/hNZCVq2X6DXhmE3rWE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=erIRQZL5RqBiQjCxcYS6PgrSd2zkzVk8B2f/JgiaO9ed86kd3hYglSiVFRkpYGoUmo2sgkW50kvnFqGyhT7rQ77IqyLfnJ8WGyWqXTtCQyxo8DoXUAyj8+9LOVz16Y1UuckLCBjZaVBU+IDjc6sDBk6gYLKwt8zj1Ws54jo0t7c= 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=Kp/yyrUx; arc=fail smtp.client-ip=52.101.70.24 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="Kp/yyrUx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EtnH47psQiC4DFkatDhzSVyiO9zCfidyXP/wMPszlAc22WPEajc4SjI64DJGx90PGYxbNIEBEmxakzT8MwAxSesZOk7/bhuBPID1VIOgkCY91gHKCpozVaVpAfcZhkq2zc3Ob0li0W6GbTD523/1M0uEc7GK1JDsloCnn+ER8upcgxwWWIN9kRzHGq8k8T9iuXO9Y1cXmibgXshOyzUKeqcz33dmIEndsAKDRvFlB0xiDhxzrbyJDemsGYT3RhgmHN53YqNXcr+Mo8Tdmy2mdIHmpuoXL47xVmV4NXt35x5ETrzOe5XXwWMV12YPE/6UgKmzNcLD3Ipn5+tOeIpRag== 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=65kKe1KQgTa+itb741njEkZluz07qfT2qSFJL3kWtss=; b=MfPHl2w5U5/747jLKuZLOGQ+wtTZcUBk6TFaNqCfhJQCWNZsQLXaYgvbCpPEeJGDNqi71Ob4lZN/V+RGF8ygCOGmnO+T56L+DyNOX6P+LzV7LHBz0sITS7YEHT3uYeBlfuj2ujkg1KiBqVrOfMUpwCXfBJLbZmrmpsRpEZHKCnR5NJliUjkMEDqiM5GUdcYLar57JwzLaJ8QgyF2+nv7YkEWLP1xePqdidYGgDvRrduXl87fmeuKU4uYlr6CIzSyLVt89FZ7amFercfjXkD2/yfwutq5ubnK7AdalLmJTj9mNoUpbnkmgnrlHqk1+2xNsy6vxWmPno8XpAzNKSCN6g== 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=65kKe1KQgTa+itb741njEkZluz07qfT2qSFJL3kWtss=; b=Kp/yyrUxm5XVhUPkMRUtsNTxzSZi6NXhVMXmtu3fb1ByGDNqlHXsJrg2M0ep4eKqzJ8GNfjuPMMbQE9v4Pa3G8rlm2hbXP9K59G7pJe09PzxhMmMoXxO6miRWN1kgCXHU6fJbBIMERAaDzvASWiJjCaiqsjU9YJzGYtcea/NJbg3/WX5AHmCmuXktwo5ZHr93e0uTZKHri3vYTJKcA9Y98EJQ8CxowWvDmif8he91YJ8G8KrX0GpcU0W004TdyrPi6KtRl0jrlgLNKizY0mOJJVxoRkmCSDpTKso3yKsCWpdfSof/Ldl17eqhPVifgSgbr/zey99tV/JaDHknsGYxg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) by GV1PR04MB9104.eurprd04.prod.outlook.com (2603:10a6:150:23::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 06:42:25 +0000 Received: from DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7]) by DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7%6]) with mapi id 15.20.9913.009; Wed, 20 May 2026 06:42:25 +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, hramamurthy@google.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, catalin.horghidan@nxp.com Subject: [PATCH v3 net 6/9] net: enetc: fix DMA write to freed memory in enetc_msg_free_mbx() Date: Wed, 20 May 2026 14:44:18 +0800 Message-Id: <20260520064421.91569-7-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260520064421.91569-1-wei.fang@nxp.com> References: <20260520064421.91569-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0011.apcprd04.prod.outlook.com (2603:1096:4:197::10) To DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) 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: DBBPR04MB7500:EE_|GV1PR04MB9104:EE_ X-MS-Office365-Filtering-Correlation-Id: e606c6b6-db99-4711-7c72-08deb63af393 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|52116014|376014|1800799024|366016|22082099003|18002099003|56012099003|11063799006|38350700014; X-Microsoft-Antispam-Message-Info: UyGQyZhZ5uzzIYRK2AQS1GfPkCqQvIEQZ6kxXo7bYFB+pexUPvrgpz54Lqvw/naUrbaxKMvq2VHCXicMmwv9kqxt4O3fDBlwscnUp4tc3LKvHy2A+p4BSZ5qgYjptSVLCSSW1UvmCzFpoOy4O4xu4FdqPiVkXyxVQ682zZ1CVaew2afwzLvU4E9RncHBBoQsDitESRbCp5PPRqWgJfaaeq7CJrHN/VuMEE4tuchXUxBbZpatEfDVfL0wiThMyisXNXRcyXGoRoO4SShBOryB2srePN/XZix5HbpTDub3vTgOgpFHHMlg/JlLDe/RDfLYyUKWiSBjYekcTwbuQy/3nDnLRoCm8HYpQjXbkmA/uAtPrqDH74Rl8A7Lnl9LgL8lOnsDKPYh51B7HyQFMCTRNG9FufVEzdyTKQtS2EUGmOjIL9d26nXp2qnklM9Co5N4MVvh8unfii01K0m4M/wWLbuTL2/8uMKCMH5ajHiEwDNRU9MO1Rxa7QDk9SWjAvdZQtCtchMOSkGSfLLDOPbQpfj3+KKqfR/2dI/MT8jrNsmE7ousmYepm12C/FF3RRln3wvszMAhgWsjWPfWzF4IYaJhPfUoJCI+V+djZuLxmme9JfykO9R6dQMg2M4rmTruiiUmHsIQshBLRJ2sq48ww1cLTsdgvmOgcrsnXy1Q9glYHSze8BQhZt6iZrKL8N2yt+YXsf7NMD1NEA3ninCNmGIKaRrgtv8YA2qMPnNZ9remLW4B+ZS9IT6ryhg7MH/a X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR04MB7500.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(52116014)(376014)(1800799024)(366016)(22082099003)(18002099003)(56012099003)(11063799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IBl24retOUmPukeiVf9YviVqrbSdrsiHB01PAUhJbdirOI/37OBs00l7CwuW?= =?us-ascii?Q?RNp9REzHm64mKIi0PNIIQnQcvUjVmOu8aTT2osUo/+8IOSvA/duymOnOUnSN?= =?us-ascii?Q?WJY0x1JFdmrwRBw/P+1yOIBS+kmW8zLpSIQ872q3iva+rBu22QrKlPRFUb5X?= =?us-ascii?Q?cw8ZB53SbBzshuguMWfE+KLncHNZZoOns7FC1bypBP78Z1JcVwIKxO7aIDfD?= =?us-ascii?Q?Jc89JIavCXUiRTfLZE5fG7zikEibjYszcqPzu7F9p7J3IerXnf3N+j+1Fkcm?= =?us-ascii?Q?dwttU7x+SyXsss/9QEzD/AGh+ijFfDVVWz9mN4MVBwOw1QVIZAfbbp4pmbvH?= =?us-ascii?Q?x6iiD1roS/BYpTByN01iKIU3XM+/rJrLTtsmHP75/QsYwUKXcNPqLeEzLHrh?= =?us-ascii?Q?gd8gyJxxqa+Oyf94qwQm7LkC3YN01In0Z0cXlTBztPi1gzQ0Ob1lUAGaqJaY?= =?us-ascii?Q?JMrkpY4ItWPxwHVTxBm0O7GNDTYKOuKROIIxUYrv4/E7ij/2E5bKorXCOXXT?= =?us-ascii?Q?bDG5wZIMzivoDr4wJgMNcQOoHmfl2OMQxthOejQKqo3TWn8/WDcC0DWiPNgx?= =?us-ascii?Q?6CG0xJVXHM79J+jlOXTqkTyqD6fXIWQomiAdSTn1xmC/WVbQOafI2OeMcyZ/?= =?us-ascii?Q?8s01iC2O3R++5QEZiR96sgk28AXNF1CZ7zLzVHwn1PdenC0l7VTidFVc+Lc+?= =?us-ascii?Q?h9fi1HqgePViecp379Zj9GOrBJ1BRTXPGrwGC4AOMdQcNeiFHnex1U0CUBx5?= =?us-ascii?Q?6mSeCt0672T6yJptyoAElKAbNfCrVJdK/6ySUQm1WFm0ERUd0htov6x2mojU?= =?us-ascii?Q?DVheOwgLecltl9akxjaWqrYR4KTDVTbAIuIoooae1VvU2Ro2WB3k0qDHc8j4?= =?us-ascii?Q?/ITf+Slt6jjSHwMgTYOdRx5qVqpaBxT+ZRM3rhr92GvPw42eDEIFHa/9405z?= =?us-ascii?Q?+koA/IJfrbMOBZiO8oAoXWErckpwkq4gYbG0iPsRO5KDTRv+pKaQrRca4Aiz?= =?us-ascii?Q?bTc0Do9nhC9YleY/UQVqGfVBEnNHC42RpbC0gGM3F1qxfAMzibSjulIJQk6W?= =?us-ascii?Q?6rYoIWnyRCJzl6q4R+U6FdU3FEGKEUOoZbVttqophYN2jfaW/T0cL5P2V5XZ?= =?us-ascii?Q?yMqLoGHBM1FH191fBqzlVW60NHLpzvOYSiB51kDpcofI75knTAPpAINXxntB?= =?us-ascii?Q?vrGjXgS0EL9YBwEGTPhgNwJIug2GeONOzFTWNvyq7eU3mpaRHl+gEtlL8ZeK?= =?us-ascii?Q?qqrvUmfEdvj5GQgt6QfXJ44wNAyNSFOJ/m+WirKWBkggC+Rthzx7NmUUjfHr?= =?us-ascii?Q?QXPB3ljuQLRiV8ECYellr0qGTAgXp7W6fkpMM6GTlAwChKDDr/NWZcvb/u5H?= =?us-ascii?Q?JKbyou9iB1GEeTCi9gDZLorD765fqoS8yHhwJ1mLGrEkL1XCdXuLWDtZfyr1?= =?us-ascii?Q?CvubN5NrlnspoYp80ApYpQoBUMXoMK1OL1BMW5p2CFuHBANs0R7C2FVhD5N8?= =?us-ascii?Q?tQPlBbIGXS02TrGebRN5yMbSPxfMIbs351vYCClVD8YFcXql9QLZqcHiQbEe?= =?us-ascii?Q?URZzQwDN2xxn7h7XxwTdPq7l4uNSXIuEK84L1EZ0erhplwCslS28K0qbSdDv?= =?us-ascii?Q?/plPmZNHsXvvff7vtYx7uNN8PK6M8VOXWMxS1wg+Mp3NwX7+xwACEkQ1B2yi?= =?us-ascii?Q?ACdfxGAgNtN97rm6LKNmoZiKGeiK7anStgb7WqKA7h3EC7Gg639m5sNjPJqY?= =?us-ascii?Q?PcOXA22sRA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e606c6b6-db99-4711-7c72-08deb63af393 X-MS-Exchange-CrossTenant-AuthSource: DBBPR04MB7500.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:42:24.6524 (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: X3jwKsQEtvvGwjZziui5THNrDoM8En8ptYwTwKG/cFdGBGjlYwC2thzKnUO37cEtdFTnfE9QoHYewv/cbft+5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9104 Content-Type: text/plain; charset="utf-8" The teardown sequence in enetc_msg_psi_free() frees the DMA buffer before clearing the device's DMA address registers. If a VF sends a message or a pending DMA transfer completes within this window, the hardware will perform a DMA write into the kernel memory that has already been returned to the allocator. The result is silent memory corruption that can affect arbitrary kernel data structures. Therefore, clear the DMA address registers before the DMA buffer is freed. Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support") Signed-off-by: Wei Fang Reviewed-by: Harshitha Ramamurthy --- drivers/net/ethernet/freescale/enetc/enetc_msg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net= /ethernet/freescale/enetc/enetc_msg.c index 40d22ebe9224..b4d7457097e6 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -96,12 +96,12 @@ static void enetc_msg_free_mbx(struct enetc_si *si, int= idx) struct enetc_hw *hw =3D &si->hw; struct enetc_msg_swbd *msg; =20 + enetc_wr(hw, ENETC_PSIVMSGRCVAR0(idx), 0); + enetc_wr(hw, ENETC_PSIVMSGRCVAR1(idx), 0); + msg =3D &pf->rxmsg[idx]; dma_free_coherent(&si->pdev->dev, msg->size, msg->vaddr, msg->dma); memset(msg, 0, sizeof(*msg)); - - enetc_wr(hw, ENETC_PSIVMSGRCVAR0(idx), 0); - enetc_wr(hw, ENETC_PSIVMSGRCVAR1(idx), 0); } =20 int enetc_msg_psi_init(struct enetc_pf *pf) --=20 2.34.1 From nobody Mon May 25 01:15:09 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012057.outbound.protection.outlook.com [52.101.66.57]) (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 D597F3446AB; Wed, 20 May 2026 06:42:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259354; cv=fail; b=PDnj55dxrcvvIK60GLKn7JO5qQc6D5YgLEJlh6IfGbgMd/EiMcBaot7qu2q+EaGQTUeGYfj3NzikqB/i0icVyvEvAtHJ/9Oix3cMI2FfnvrGEjzTbsD+L/KeiBC+mQ0o3KSwSpOaeqNDEo5ireIlyfMrItCgGhIuLZ1dfcSSEiU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259354; c=relaxed/simple; bh=Q1I5WcZnrE0bi1VUWTUmYU6AfSnviwG59Qn+/TLJlAU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=QIGb+O0OH3iW+4w5CeHj5141p/qq9LtbLyv/XE7jZWuF4TBZYXGyBKdPGvQWu4l51ijtpYHfDgqhdM7oZywIXd8SUhHk6RJdPr3iWqJo28qpKmWWQfBjVnll3i6LrSdkrNtCZ0ped+l8GwXEEGRq908CMe8YcDm6GPfwhW+euw0= 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=KW8vR1IW; arc=fail smtp.client-ip=52.101.66.57 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="KW8vR1IW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gDU+iNEpiIJqGQ13o6aap7Ue7ZW5F9s4UV9Gjecug8OfRowW+pIhDMfniUs2fWr0V5gB2rlYW2jFd/r/cIgUz3FozbeUxgwvvdjYutjy945vdo9p/2rubXp6Q2uuq++hZInR98FNc3qUUy1fUODffWOpvXj8EByclZvUv4L0cBGQxte+MOVKTMbqGnOskXj81dS03JVsbNGL8GgjmqPWyMyM9ylR+ghVoqjwHX0BWLWFYd24ZI3tGYL5Td50ydpVeBv1vY6AxtA7ESt4pztL7uuHyf01btIbDZcaDoPrLPi+2iIcSk6QQeC+7ftXI2QHx2WMiy0/54nlvs87bUFVJw== 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=ytHGcylKvwYDxF2iTkoyMLEgyOOGA4NIIqw+syDRC4U=; b=ieTxRdVrmaFCgPvkpUgL1jBtyPT0puxs5OzTzLDOmTdNiw1blH2TZx1KLpLl0O1+NEEo1R/GmRYY/ZbH71wBnBOe4NsBxRKHd3WnbZ9RyBU35xdj5BVGXJQue2+X0jG9b1ksDGbGh00F5uDTnfRxolkIVdzexr1CmcFEONtrNC7Kkhlg3NwQGjggXEa4ToZZkv8yuJEvrZ/peGoiBPC1TXnednL+idxo4ylNmvHoVgOyFvzuptRZPvURjB+4IvqT/xHZb9LH9Ed02IcdbHhPFkPiadGpcx7Zt0ZiUJGPJNJkczQhIi6oLRE8CLrhb/fFwxwnvdoPIMOY9q63SguwUw== 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=ytHGcylKvwYDxF2iTkoyMLEgyOOGA4NIIqw+syDRC4U=; b=KW8vR1IWsqacm6YYNXk11aPywMHgonvlPTAqL/JZyZf+1ALSQMYkazdCVdv9Nq10Kq+VP/l//+SE8AOhEbJEyjPl9w3rXErTbL+dPSMPUNsoNYmIVQDUfMJRMqsw0ZFffmpMjPEz6hp2P6yOiTCpxXGcslfZiDSz6oucliXv19PU0IHb1Lj9l/wUhbtso5pTKtoDMlf/NA5zIDUeVoFMsLiyx7ldEYLxWA4cw54v63IDjKOBSJEvhFBYgfFblQm6/quIuO2pdJDrnosTct3LEUDkJDN5UtGvuwWzFB/Xr+t4gHbiZ35l6L6oTVMJ2DRDlRTo8Wf0mYIS7vMUkcDwiQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) by DB9PR04MB11659.eurprd04.prod.outlook.com (2603:10a6:10:607::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 06:42:30 +0000 Received: from DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7]) by DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7%6]) with mapi id 15.20.9913.009; Wed, 20 May 2026 06:42: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, hramamurthy@google.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, catalin.horghidan@nxp.com Subject: [PATCH v3 net 7/9] net: enetc: fix unbounded loop and interrupt handling in VF-to-PF messaging Date: Wed, 20 May 2026 14:44:19 +0800 Message-Id: <20260520064421.91569-8-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260520064421.91569-1-wei.fang@nxp.com> References: <20260520064421.91569-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0011.apcprd04.prod.outlook.com (2603:1096:4:197::10) To DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) 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: DBBPR04MB7500:EE_|DB9PR04MB11659:EE_ X-MS-Office365-Filtering-Correlation-Id: b39e119d-190e-4605-4954-08deb63af6b7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|52116014|1800799024|366016|38350700014|56012099003|18002099003|22082099003|11063799006; X-Microsoft-Antispam-Message-Info: 7KmWY150tvNRoPCt/qi3Rjw/HwARtrdN3m/3mz65JU5U3B2XNPnir1x5r7/agu4bMxhwB+ltWks38yoam64Xc1qJ85CWPARpgOXbTkqBTpd2LiNjtokuvSSPl0Ruq1XqKYb85NiRAs3zwEI+IAabzEMjGjUlxmiJ2SPwozoh3lVxhyHHo7SfexvWa0+m372qu0YQ5JwC+jfzOUBlP/M0I8Nb8okjcwoE4IgY6We+Mei41u9951RXiO2XdwvPEAQiojyeqj7AvbPAoVH4aot8FzD0twy0WKacM5Qi5FqMARvg1qqEK66gHXQF4KY4DUR9zie6SM3X2GTVonfuaweryfBGc3dcOZAxpqC3axHL5t/Eoh1gv4C6uj21r1cI3A99IN3eDfiKTjy5ZJ2/3fdIQ7rjU02UsD2NOl+ejIXMobtacD9gmG/VwzXRkF+b0iouGCdXQb+MMWly/dvxFTJfXCB8mDu1WSwXOCl4sdctfnddS06u9AQZ3179vTXMPK9NctosVZaH4YKNnMz12YDsKMegAVBjLkNbHe5h8Tt63Qvkh//ZXeQaYTNyri6js4gi1iJLzB3O19bi6k6WMCZijlrd/wD71KL9y+mpWwMxKkQTsKi9Z2XrEEENx8VmIH0ALR3cCkkAsBoQ9zfUUSpCDOY0tiaeoJClmEGdbc3tNDCx+IFirGfhICUbumdIy/Io+oWDvA3ARA5rO6bhztmNl/uZOl4iaMfvDylRBtXNBKlhEQvhcqcldYGU8TYra3mU X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR04MB7500.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(52116014)(1800799024)(366016)(38350700014)(56012099003)(18002099003)(22082099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?D89fF9l9thNo1dnbWghdH5WUoNPgwb0zOxeo7mRUZpQo2HKJfBXyhT2WHmX9?= =?us-ascii?Q?PjYGAbiH+PIzYtfrUXTXki2fpH34GniKSaxwzMyFcsGAg9bmjd1LCPas/p2A?= =?us-ascii?Q?bYGc5e06BBdWwOdgqn2PFyahXP5NSfB5NLUiA5w4qjv+XPRwN1Q7KOvokWnV?= =?us-ascii?Q?/BY2tMu/iebN1j2SVpMpwVSvzM4ku3337K0GX40PTE8Z8/E40we8JVBDOnwI?= =?us-ascii?Q?x3b7GYjeGZoVMG6WnmODAdMSUdtX6XlsPTbm2vGj/3BoNiqDqEsDZ+ti/zVk?= =?us-ascii?Q?O9WNC1V/0ZR/pXZ6LGkVt47QFMYbygK9aEMLdKfoixBSMbl4JXSRJqXO9ot7?= =?us-ascii?Q?t8QIemKZMy5i9VgErbK2rOGh3PMbx+ul3yHZV/LLbZQMtcrFOw6gPo0Mlz5D?= =?us-ascii?Q?4Pgm+qS3MeRaC+7KahllVnqycSWj3pDQqDPg/zOguSpAsPcxA/JiMEf/6PmE?= =?us-ascii?Q?rtRC1AdWx4HIEryWq+Ns2PgcIauYZqNqotEO/bqErNQ/eI1TlPdmE6hpOTOE?= =?us-ascii?Q?ovEdTQageVYQzAaFzPHNSQ1OW2g6aeR/Hx94vHIB8Gx94fa+G0yM5lwfPPpk?= =?us-ascii?Q?YuyUHTQShUHj8yqpudWhlMiXk1OoXl4+ZP/6RIwu4e2Pqwmjco5D/gRRhGg+?= =?us-ascii?Q?+D8wzVMRMtZwA1Iyff9inUBFMQMJ7fRyxuS/aNkfDrnqZxsr1dAxN319lWWF?= =?us-ascii?Q?Jd5x+frbj9OaYSS/bO3g5ilkF2PLXVsXahkkecvHRqhUjBL6hFlnE18cs/D0?= =?us-ascii?Q?+4sH3h3xQPQ59z/e9ZtK3EF7m8vQc7yzeVPztsV+FWhcNbnrSnoVFKQXd7th?= =?us-ascii?Q?1Lc15q0icg1PLw25iQftkEJ4saGOfV+1Pl0UF3CZopD03LsWk4O8+loIxchz?= =?us-ascii?Q?FCJuQxfH8WYDeZW1b6eDVTHQ8nXK2rGQjh4rW8YHiugbSERTkNA6ZV8rgeP8?= =?us-ascii?Q?NAotPUnI3RBzGHjsL6sIJoU5ku5FU4yZy+uxUqlcQF2+nTycWB7kZI/MiEqR?= =?us-ascii?Q?fjTDeXoE9zBb6E6Zl915LIRSKDuoTW2AFTj+zDFDZIVEBgZsa2GDmH/Y8SUi?= =?us-ascii?Q?OYBsDL27ZWSeLTrjE/PJsREdkVkoV5HQzkwlOFm7qLVgVjQX8QGLDI03S8iU?= =?us-ascii?Q?s9dTMnD7xDsqSB/pscaf+aseoXjip1ggohSgpGYlWc6SOdpw5p9lzyatKkC9?= =?us-ascii?Q?70OAmjJTf7VAFSqvjVqXymMBZHJZ7Hg6mS/mWFj7bu3yN8fFVLuNW5dkNIuT?= =?us-ascii?Q?7vo0B2DnJCSaTT10NPworZtt9kWC3ADL9Dquuo8bjqnNBXMSScILnbHlfVqU?= =?us-ascii?Q?Q4Pa4nj9x+H0V3GLjr0E9PLP4etu2wXMt6f/03BsrzCIFhV6MVWtWmU7ugcD?= =?us-ascii?Q?QrH286JrC85uc8/CjsQEO01fvNjQQ8147ZhBM0x4ejA/4SvsK7KzxDsb4LV6?= =?us-ascii?Q?9AwQkFSHah12y7IYbEzvdEYCbNT+d1kdWUf3F44B4RiYi0w6JyMNLiuNwkb6?= =?us-ascii?Q?mwm/I6tzQ5T9i45/9JEeFzpy5vQt6s5Cd/F6bvcLed+ziw6ai/NWzAGCUwT0?= =?us-ascii?Q?zFfTrTjRHPahcy4XcoLPo3SLeK8B+/CHXf+ZKtNATZDTxpcJO3Iv1TKpDCm0?= =?us-ascii?Q?Sml/eV2RXvbY0RvyhinME3M/fGeUisvxkmo93+oqSdYO3ST7/V0Qoo6lJ9Zc?= =?us-ascii?Q?Zg5WBNa5CnL0iVUx3a52sRBm1Rm3BOWtGg8pJSk+0mzxy64DkydV8tUDREvY?= =?us-ascii?Q?a9/Io94zDA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b39e119d-190e-4605-4954-08deb63af6b7 X-MS-Exchange-CrossTenant-AuthSource: DBBPR04MB7500.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:42:29.9014 (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: HGCmI9/aPLEGkTH91AgfSxI9XLgAw5CrahBe6fuILJ3Fe39eOEEi5QrSia3JuBpLiKSkqEJMSsMrZAu9aWDgyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB11659 Content-Type: text/plain; charset="utf-8" The enetc_msg_task() function has several issues that need to be addressed: 1. Unbounded loop causing potential DoS: enetc_msg_task() processes VF-to-PF mailbox messages in an unbounded for(;;) loop that keeps polling ENETC_PSIMSGRR until no MR bits are set. A malicious guest VM can exploit this by continuously sending messages at a high rate - immediately sending a new message as soon as the PF acknowledges the previous one. Since the worker thread never yields or enforces a processing budget, the mr_mask check frequently evaluates to non-zero, causing the PF to spin indefinitely and starving other tasks. Fix this by replacing the unbounded loop with a single snapshot read at task entry. The task processes only the VFs whose MR bits were set at that point, then re-enables message interrupts before returning. This bounds work per invocation to at most num_vfs iterations. No messages are lost because the message interrupt is disabled in enetc_msg_psi_msix() before scheduling enetc_msg_task(), so any new messages arriving during processing will trigger a fresh interrupt once re-enabled, scheduling another task invocation. 2. Write order of ENETC_PSIIDR and ENETC_PSIMSGRR: Both ENETC_PSIIDR and ENETC_PSIMSGRR contain MR bits indicating messages have been received from VSIs, but only ENETC_PSIIDR trigger the CPU interrupt. Previously, ENETC_PSIMSGRR was written before ENETC_PSIIDR. Writing ENETC_PSIMSGRR returns the message code to the VSI in its upper 16 bits, signaling to the VF that message processing is complete and it may send the next message. If the VF sends a new message before ENETC_PSIIDR is written, the subsequent w1c write to ENETC_PSIIDR would inadvertently clear the MR bit set by the new message, causing the interrupt to be lost and the new message to go unprocessed. Therefore, write ENETC_PSIIDR first to clear the interrupt source, then write ENETC_PSIMSGRR to acknowledge the message to the VSI. 3. Check both ENETC_PSIMSGRR and ENETC_PSIIDR for mr_status: The write order change above introduces a potential race: if a VF sends a new message in the window between the ENETC_PSIIDR w1c and the ENETC_PSIMSGRR w1c, the ENETC_PSIMSGRR MR bit for the new message may not be set. If mr_status was derived solely from ENETC_PSIMSGRR, this message would never be detected despite ENETC_PSIIDR retaining its MR bit, leading to an unacknowledged interrupt storm. Fix this by computing mr_status as the union of both ENETC_PSIMSGRR and ENETC_PSIIDR MR bits, ensuring all pending messages are detected regardless of which register reflects the new message state. Additionally, rename the per-register MR macros (ENETC_PSI*_MR_MASK, ENETC_PSI*_MR) to register-agnostic names (ENETC_PSIMR_MASK, ENETC_PSIMR_BIT) since the MR bit layout is shared across ENETC_PSIMSGRR, ENETC_PSIIER, and ENETC_PSIIDR. Make the mask macro dynamic based on the actual number of active VFs rather than hardcoded. Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support") Signed-off-by: Wei Fang --- .../net/ethernet/freescale/enetc/enetc_hw.h | 15 ++++- .../net/ethernet/freescale/enetc/enetc_msg.c | 65 +++++++++++-------- 2 files changed, 49 insertions(+), 31 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_hw.h b/drivers/net/= ethernet/freescale/enetc/enetc_hw.h index 662e4fbafb74..e58cc81d199d 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_hw.h +++ b/drivers/net/ethernet/freescale/enetc/enetc_hw.h @@ -56,11 +56,21 @@ static inline u32 enetc_vsi_set_msize(u32 size) } =20 #define ENETC_PSIMSGRR 0x204 -#define ENETC_PSIMSGRR_MR_MASK GENMASK(2, 1) -#define ENETC_PSIMSGRR_MR(n) BIT((n) + 1) /* n =3D VSI index */ #define ENETC_PSIVMSGRCVAR0(n) (0x210 + (n) * 0x8) /* n =3D VSI index */ #define ENETC_PSIVMSGRCVAR1(n) (0x214 + (n) * 0x8) =20 +/* Message received mask, n is the active number of VSIs. + * It is available for ENETC_PSIMSGRR, ENETC_PSIIER, and + * ENETC_PSIIDR registers. + */ +#define ENETC_PSIMR_MASK(n) \ + ({ typeof(n) _n =3D (n); (_n) ? GENMASK((_n), 1) : 0; }) + +/* Message received bit, n is VSI index. It is available for + * ENETC_PSIMSGRR, ENETC_PSIIER, and ENETC_PSIIDR registers. + */ +#define ENETC_PSIMR_BIT(n) BIT((n) + 1) + #define ENETC_VSIMSGSR 0x204 /* RO */ #define ENETC_VSIMSGSR_MB BIT(0) #define ENETC_VSIMSGSR_MS BIT(1) @@ -94,7 +104,6 @@ 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 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 b4d7457097e6..3136e8321e4d 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -3,18 +3,25 @@ =20 #include "enetc_pf.h" =20 -static void enetc_msg_disable_mr_int(struct enetc_hw *hw) +static void enetc_msg_disable_mr_int(struct enetc_pf *pf) { - u32 psiier =3D enetc_rd(hw, ENETC_PSIIER); + struct enetc_hw *hw =3D &pf->si->hw; + u32 psiier; + + psiier =3D enetc_rd(hw, ENETC_PSIIER) & ~ENETC_PSIMR_MASK(pf->num_vfs); + /* disable MR int source(s) */ - enetc_wr(hw, ENETC_PSIIER, psiier & ~ENETC_PSIIER_MR_MASK); + enetc_wr(hw, ENETC_PSIIER, psiier); } =20 -static void enetc_msg_enable_mr_int(struct enetc_hw *hw) +static void enetc_msg_enable_mr_int(struct enetc_pf *pf) { - u32 psiier =3D enetc_rd(hw, ENETC_PSIIER); + struct enetc_hw *hw =3D &pf->si->hw; + u32 psiier; =20 - enetc_wr(hw, ENETC_PSIIER, psiier | ENETC_PSIIER_MR_MASK); + psiier =3D enetc_rd(hw, ENETC_PSIIER) | ENETC_PSIMR_MASK(pf->num_vfs); + + enetc_wr(hw, ENETC_PSIIER, psiier); } =20 static irqreturn_t enetc_msg_psi_msix(int irq, void *data) @@ -22,7 +29,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_disable_mr_int(pf); schedule_work(&pf->msg_task); =20 return IRQ_HANDLED; @@ -31,33 +38,35 @@ static irqreturn_t enetc_msg_psi_msix(int irq, void *da= ta) 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 ENETC_PSIMR_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) { - /* re-arm MR interrupts, w1c the IDR reg */ - enetc_wr(hw, ENETC_PSIIDR, ENETC_PSIIER_MR_MASK); - enetc_msg_enable_mr_int(hw); - return; - } + mr_status =3D (enetc_rd(hw, ENETC_PSIMSGRR) & mr_mask) | + (enetc_rd(hw, ENETC_PSIIDR) & mr_mask); + if (!mr_status) + goto out; + + for (i =3D 0; i < pf->num_vfs; i++) { + u32 psimsgrr; + u16 msg_code; =20 - for (i =3D 0; i < pf->num_vfs; i++) { - u32 psimsgrr; - u16 msg_code; + if (!(ENETC_PSIMR_BIT(i) & mr_status)) + continue; =20 - if (!(ENETC_PSIMSGRR_MR(i) & mr_mask)) - continue; + enetc_msg_handle_rxmsg(pf, i, &msg_code); =20 - enetc_msg_handle_rxmsg(pf, i, &msg_code); + /* w1c to clear the corresponding VF MR bit */ + enetc_wr(hw, ENETC_PSIIDR, ENETC_PSIMR_BIT(i)); =20 - psimsgrr =3D ENETC_SIMSGSR_SET_MC(msg_code); - psimsgrr |=3D ENETC_PSIMSGRR_MR(i); /* w1c */ - enetc_wr(hw, ENETC_PSIMSGRR, psimsgrr); - } + psimsgrr =3D ENETC_SIMSGSR_SET_MC(msg_code); + psimsgrr |=3D ENETC_PSIMR_BIT(i); /* w1c */ + enetc_wr(hw, ENETC_PSIMSGRR, psimsgrr); } + +out: + enetc_msg_enable_mr_int(pf); } =20 /* Init */ @@ -133,7 +142,7 @@ int enetc_msg_psi_init(struct enetc_pf *pf) } =20 /* enable MR interrupts */ - enetc_msg_enable_mr_int(&si->hw); + enetc_msg_enable_mr_int(pf); =20 return 0; =20 @@ -154,7 +163,7 @@ 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_disable_mr_int(pf); =20 for (i =3D 0; i < pf->num_vfs; i++) enetc_msg_free_mbx(si, i); --=20 2.34.1 From nobody Mon May 25 01:15:09 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011035.outbound.protection.outlook.com [40.107.130.35]) (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 A84E030566E; Wed, 20 May 2026 06:42:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.35 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259361; cv=fail; b=KOefZy5XHXy6NUvQL9AmmApnzPrBMsxeiB1UhryFSteIvKa3TL0LIu0EVE5b4KVh9Jq8iJW3xAx/2vDOPFN4uuyNR2pKlytlOLVvL3r3p8rpdIQmyEBLHtYS+KRYg/Jolc3TuZ20MfuXaF/nYs+DGC4SJb1vIQpwB+CO2pMw9n4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259361; c=relaxed/simple; bh=gn4Q8jWQPsC7S6u5aJOGbAdDEkcK2RG1fkpUKafZSd4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=gDX9ddNu+jpFdJcH+3logVUq7AjxJkMIIDqtI6JcUccp7PrD3OYLCFixqMuw4w0qMTmwlYUqyOCoXEMHuqRxOmqNFB5VGXODK8b0olMTlOYd06n2YmoT0+YZK5LBCFS5s3nJBoDbXzeUw761a6PzB0ZLNkkBqH3WefwRX+ZdTAY= 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=YWISqvlh; arc=fail smtp.client-ip=40.107.130.35 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="YWISqvlh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JpuT8TfQToeINx7OwEDLqHVPGJqw6jhBOuWN0rcpf1dApaE6aB6cyTiEdi+ASrFkcHy+AQ3sBh0dWTCE7vY90cRDxETxVeeqPPX6zZv1G8eb+MByFkgW69bfQMiZe1lMGn4A6rXmeLsuxX8AKalzrODzgCpHfBab6sqHHbUxI9lsWseCxepdp9ngHg0Y1SR3rWKHha/+e7331ML/IytZHtgVsxSGKOed2K2I0axG2M2q1AEiUb3ZVQ4U3hQinwrKOXgB5qcNePq0R62Ze3MLWVAmlqzvEsK6YN7NSx4UVtSKgJ3CkCb4wIBsMFN9/5krmiIldmwmNzUeRLJy/dlGwg== 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=z1NePTMQkheurv3ZesBS98wTc2Z5z8HaphatNlThklM=; b=VRUfmoj41+WmnHTsCX4MPkvsT8+Yjq7W26t+LtPBm78pO3u2/5Ccl+kV/vCexbvZVDCCcvo6TnMkfZmYVqm4Ap4H4hqXtWmcOodOKBWC96y65W1ZdHSSRzxIHPpRYQg64yWEruDiFRU1ageFA0dUyJ7Bqniw+w9l7L4GjWeAGsDVqdpNL5Zu3UYvYzwh1Q8B5+jluYO3SOADrUvKjXbdZj4xUgMEvNX2Q4Th3QkShQQoifgS2VWCA0BE806eMnunc076VBMFrKYcwvMWtTwDdVvQGvRddHx+iL0ryANsMuN/wclPtshgpA8c/DCDyT6g2cE7/8OyUIQyvpKGvpV2jA== 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=z1NePTMQkheurv3ZesBS98wTc2Z5z8HaphatNlThklM=; b=YWISqvlhkmQVtXZvqBZoj//BKNOeXvVixf/UWmJodJxvY0n9unXqZ/TUVFbfiSYDJhCXZvEG1f+RhfWgg6/4cHMWVUD3HYdFK6IZuWjk23RTCIUD4XrC1PrVttPhn63ZFGXWNAASCmuQFO0OudbZCBw+JiiHek9t8zhFIfN/HL6tZLfUfyAtMD+6Gjd3wJ9IsQC215k2UIpxN65ZUoufPD0ZUWcwuy8Y9+FckHx8/GUKyMovlcM0yZhmAUah1w90aXh9lU377D8KhWZANOi5Q7WMmDIJhTL2WhGNUS5WUYCNnk2FwTD0O+2e7EfGmEBqiHXcN/VB8wKQ0o1SYH1djA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) by DB9PR04MB11659.eurprd04.prod.outlook.com (2603:10a6:10:607::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 06:42:35 +0000 Received: from DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7]) by DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7%6]) with mapi id 15.20.9913.009; Wed, 20 May 2026 06:42:35 +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, hramamurthy@google.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, catalin.horghidan@nxp.com Subject: [PATCH v3 net 8/9] net: enetc: fix init and teardown order to prevent use of unsafe resources Date: Wed, 20 May 2026 14:44:20 +0800 Message-Id: <20260520064421.91569-9-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260520064421.91569-1-wei.fang@nxp.com> References: <20260520064421.91569-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0011.apcprd04.prod.outlook.com (2603:1096:4:197::10) To DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) 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: DBBPR04MB7500:EE_|DB9PR04MB11659:EE_ X-MS-Office365-Filtering-Correlation-Id: f45fffc9-7206-4bfd-7ac6-08deb63af9da X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|52116014|1800799024|366016|38350700014|56012099003|18002099003|22082099003|11063799006; X-Microsoft-Antispam-Message-Info: VP8O00KzFDtRx3l5GVWNaagHOUOdpEsF6MCmyyvHvWzJMd6chDTJS9uN9e9ZEeDOqzL3q7pfQ0bNqA0xpaCzFZVqlPfqifWmQAUP3w8KZideSAyxrj37GnK3PCDRa7DzHlMYqI6vxXheNncih4O3BiRUapmSnMafCuliyYv/MM0Pu1YHqBed79UNF123YnVXTRvPJH51rTNlUzp9SItWhAmC8EGWWFd6MNyGIIALcWew9PVawJQeeydj5WeNQep9kX46Euh5GH5CSFq/A59oawpwaVzTMtHd/Qk0PSHqvbG1TWoQ/Axpr490HBz7K1V0+sW48a8lno/u+tGMOvblkSLl4ipwqkruxpgxW2nN6Ra6AWZCcZeFfNrgFkUP1tAvTaKi1NAHsKwCJ2ESsnVscKOYFKe0SH2EwCEuxcsQPU05940Osk2Y1MRc6tDOQ618aexDWJARf/z6NkBWYcr6Wjj0ngBrB43dda0uXPB9UDGBX70CnaaBpTc5eoaWXhNQvjUevWuOJQPK1tdSL+xL1iY8Lg52AEqI+eZkKxF1PpBc4SzkF2fc80U24JsgF3axzaZzUdH/dF6mEJdXSMHDYk8gazaC8YXYw/rfC1yyKzgSo7r0nAmAT8b6cSoB6y9xi8ATakmUgo9H6pPUX71I2RONvpKWyCsoFiQggC+0MQYWXjqb5B9ldmbcKigVNdEO X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR04MB7500.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(52116014)(1800799024)(366016)(38350700014)(56012099003)(18002099003)(22082099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7dKgszoKq9yCgBDJS7NzwzwK6C5+cA+KqFgGZYkR5ei3ybWa8eCauqFpY48O?= =?us-ascii?Q?tMiUCtipbWtnvr5lc9wS7+iqC3FeEkJl5XGnORnmpgRqJ3fBKsMGWToyGJ/V?= =?us-ascii?Q?VLUlnG4yNxE4S4mhsmMsCaHHaxsAEIQR60JPwzQAOInDHBFdP5wEXNGCOeFN?= =?us-ascii?Q?fHfQ8T3XVov8npzBXDgB4NXfDjrxEcIgI5MgCFs6ewAURuaTIfxDZv/YPKkU?= =?us-ascii?Q?iv7HRZ9VAsxH3ZlMcsSR0DE/Z07DdDv2GQO63Fz08HwdcE9/SrDAS0RTkXfs?= =?us-ascii?Q?HSn4STiMSRifgiKzn2ZeNwe8QvcNnKTBO5cqGXlxn19x0JTkDd76Gu4OhwrI?= =?us-ascii?Q?m54Miz8lGUGcPJzRg2q1pu9oUIIaG/622Dq4dfRTeIlVOJz5ckvyOwd6qhIE?= =?us-ascii?Q?Ez/vtysPoMqNalAgHRmlBVXvigkaAUsBfTCmO28WbX//yDegEyIy9SQ/nuy7?= =?us-ascii?Q?oCEXCvXAvyl7LnitKKzdwVCmgDTHZBEpcMTj4XmwUTsaSXC+B016lm6005pC?= =?us-ascii?Q?Mx6j7/GiT1/lmYWCvRUSwlXJdxbEa2UvfWB3IM1d56zp07Gb7zTB39etG9fL?= =?us-ascii?Q?uibsF0EJDaYjpVpNScTzJ6TXoNs8LL4AgdFuMP6oha0oIHXF4dtnEKpow3GC?= =?us-ascii?Q?e8wfwHvMFB3f2g2OMjhxVGA/NIHEPcF29T0NYwP4ExiKEwXffc3g2+sqWKdw?= =?us-ascii?Q?+684rk8ebSY3Uvk3MjE/5bcgyoq+WOwNoixjn5xgCzjHd5kANNdTMa+Q++5W?= =?us-ascii?Q?wjKn+G9pEI5YwiEWV8kx89qpWD1OsHa6XQAk0Yg9HvZMfc4+wOm0CnAXXIH7?= =?us-ascii?Q?8fR/f0pef+VzSj/ovkhMiWdQ8Gw+Ul/oTGZ/RZzoqc7VdiR+jgty+2Mh0qyH?= =?us-ascii?Q?Sgbl2ofDSIxQookGOJFhVBpC/I2uN9PN8dTszHtEwBdx6BR+yIiNGmYB8m4j?= =?us-ascii?Q?dcXphQXGvy/6rEnn8W2sFS6IpucJfUhlN2Ky7M+Wk3NayCxa38PYsJ9MdRPd?= =?us-ascii?Q?u+GqGvEYhC9IZdXbkGIO2Hh2j6KW9/7vYiYK+KAseUG7RA6/yJvR1ALcsuZ3?= =?us-ascii?Q?DJYuapj3zOZ9xANmfV+FD6RBIr3V7RDmNxJZe6XcLawNRyJpIM6k/0cupuxF?= =?us-ascii?Q?VM4k/dfDWPB5mOStdB04DM86PrvE/ov9SFFN34bIcSvO2xrr0B/PO5eB53Qp?= =?us-ascii?Q?TXY7c1lP90qPTQZSeyUYoEMBkUt2A6x1RIYu9xtNha6UyLakNkC+M5JdS3xF?= =?us-ascii?Q?DKvdFbdsz+OKFne1MjrJ7Oi3P+D+QJOhierqCafanphBmAWIMtKHKi9acUBN?= =?us-ascii?Q?rANETD3g1IGW8OTnZKpaWglzHE8dI4twdvCI6FUHAFQZE2BTDTNcZmVFJ1po?= =?us-ascii?Q?XK/1KYoRtOtga9fzsLzP3ldwmfdhmU0oXh6azaVW7HAcMKW0mh1sobf10oah?= =?us-ascii?Q?K3i7f1qhVhasRy3pTk6Qufk8vDKtogwUdjgVB4sSFJhfbREF0J10dExgB/yj?= =?us-ascii?Q?x78vJR47Hk604pW9ej6yQB0dGGz78PYDKByylz4gmGxvSKbL8otCsPQRqnff?= =?us-ascii?Q?AZhJu86ohMXeKUuo6fYJmJ5GgoTI2Tgu6K7Ju8sTIvKL4ZRshrh6v1kF0Fjf?= =?us-ascii?Q?SEMAwbMJtBj3inTn94qNY4Q5EHqMvSmWddU24Nw+vWM2Cp4R6wg6FPwW1uW0?= =?us-ascii?Q?hsqwXC6+/bH0zGx3YmKfIuSXkxMBo5sTLvD96RY23E8/a3j7N3X4VPOwp+Q+?= =?us-ascii?Q?H2xgOS8dxA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f45fffc9-7206-4bfd-7ac6-08deb63af9da X-MS-Exchange-CrossTenant-AuthSource: DBBPR04MB7500.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:42:35.0868 (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: pt3znIDQeCTqV5HLmL4o4exYcSu56XgGyfwJRml/oRN/aXFPYy9NwzlZlV8v0XUZVdOTC2fyzkrSynzoPjlsaw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB11659 Content-Type: text/plain; charset="utf-8" Sashiko reported a potential issue in enetc_msg_psi_init() where the IRQ handler is registered before DMA resources are fully initialized [1]. The current initialization sequence is: 1. request_irq(enetc_msg_psi_msix) <- IRQ handler registered 2. INIT_WORK(&pf->msg_task, ...) <- work_struct initialized 3. enetc_msg_alloc_mbx() <- mailbox DMA allocated This ordering is unsafe because if a spurious interrupt or pending interrupt from a previous device state fires immediately after request_irq() returns, the registered ISR enetc_msg_psi_msix() will execute and unconditionally call: schedule_work(&pf->msg_task) At this point, pf->msg_task has not been initialized by INIT_WORK(), so the work_struct contains garbage values in its internal linked list pointers (work_struct->entry). Passing an uninitialized work_struct to schedule_work() could corrupt the kernel's workqueue linked lists, potentially leading to: - Kernel panic in __queue_work() - Memory corruption in workqueue data structures - System deadlock or undefined behavior Additionally, even if the work_struct was initialized, the mailbox DMA buffers (pf->rxmsg[]) may not yet be allocated when the work handler enetc_msg_task() runs, resulting in NULL pointer dereference. Fix by reordering the initialization sequence to ensure all resources are properly initialized before the interrupt handler can execute: 1. enetc_msg_alloc_mbx() <- Allocate all mailboxes 2. INIT_WORK(&pf->msg_task, ...) <- Initialize work first 3. request_irq(enetc_msg_psi_msix) <- Register IRQ last 4. Configure hardware & enable MR interrupts This guarantees that when enetc_msg_psi_msix() runs: - pf->msg_task is properly initialized (safe for schedule_work) - pf->rxmsg[] buffers are allocated (safe for work handler access) - Hardware is configured appropriately As the inverse of enetc_msg_psi_init(), enetc_msg_psi_free() also has similar problems. For example, if a pending interrupt fires between enetc_msg_free_mbx() and free_irq(), the ISR enetc_msg_psi_msix() may schedule the work handler again via schedule_work(), which could then access already-freed DMA buffers (pf->rxmsg[]), leading to use-after-free and potential memory corruption. Therefore, the order of enetc_msg_psi_free() is adjusted: 1. enetc_msg_disable_mr_int() <- Stop new interrupts first 2. free_irq() <- Ensure no IRQ handler can run 3. cancel_work_sync() <- Wait for any pending work 4. enetc_msg_disable_mr_int() <- Re-disable in case work re-enabled it 5. enetc_msg_free_mbx() <- Safe to free DMA buffers now Link: https://sashiko.dev/#/patchset/20260511080805.2052495-1-wei.fang%40nx= p.com #1 Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support") Signed-off-by: Wei Fang Reviewed-by: Harshitha Ramamurthy --- .../net/ethernet/freescale/enetc/enetc_msg.c | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_msg.c b/drivers/net= /ethernet/freescale/enetc/enetc_msg.c index 3136e8321e4d..c09635e7eb3d 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_msg.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_msg.c @@ -118,6 +118,15 @@ int enetc_msg_psi_init(struct enetc_pf *pf) struct enetc_si *si =3D pf->si; int vector, i, err; =20 + for (i =3D 0; i < pf->num_vfs; i++) { + err =3D enetc_msg_alloc_mbx(si, i); + if (err) + goto free_mbx; + } + + /* initialize PSI mailbox */ + INIT_WORK(&pf->msg_task, enetc_msg_task); + /* register message passing interrupt handler */ snprintf(pf->msg_int_name, sizeof(pf->msg_int_name), "%s-vfmsg", si->ndev->name); @@ -126,32 +135,21 @@ int enetc_msg_psi_init(struct enetc_pf *pf) if (err) { dev_err(&si->pdev->dev, "PSI messaging: request_irq() failed!\n"); - return err; + goto free_mbx; } =20 /* set one IRQ entry for PSI message receive notification (SI int) */ enetc_wr(&si->hw, ENETC_SIMSIVR, ENETC_SI_INT_IDX); =20 - /* initialize PSI mailbox */ - INIT_WORK(&pf->msg_task, enetc_msg_task); - - for (i =3D 0; i < pf->num_vfs; i++) { - err =3D enetc_msg_alloc_mbx(si, i); - if (err) - goto err_init_mbx; - } - /* enable MR interrupts */ enetc_msg_enable_mr_int(pf); =20 return 0; =20 -err_init_mbx: +free_mbx: for (i--; i >=3D 0; i--) enetc_msg_free_mbx(si, i); =20 - free_irq(vector, si); - return err; } =20 @@ -160,14 +158,17 @@ void enetc_msg_psi_free(struct enetc_pf *pf) struct enetc_si *si =3D pf->si; int i; =20 + /* disable MR interrupts */ + enetc_msg_disable_mr_int(pf); + + /* de-register message passing interrupt handler */ + free_irq(pci_irq_vector(si->pdev, ENETC_SI_INT_IDX), si); + cancel_work_sync(&pf->msg_task); =20 - /* disable MR interrupts */ + /* MR interrupts may be re-enabled by workqueue */ enetc_msg_disable_mr_int(pf); =20 for (i =3D 0; i < pf->num_vfs; i++) enetc_msg_free_mbx(si, i); - - /* de-register message passing interrupt handler */ - free_irq(pci_irq_vector(si->pdev, ENETC_SI_INT_IDX), si); } --=20 2.34.1 From nobody Mon May 25 01:15:09 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013029.outbound.protection.outlook.com [40.107.159.29]) (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 51828351C31; Wed, 20 May 2026 06:42:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259365; cv=fail; b=Er5lf9hMfXH76zxPAyogtP/Sjli7YQiDwYIDKIEZjsPsEzcpXftPxaxNMU3Xy/98eeLfNGJhN95RaSU60HWLaG165fVZ0HFfmVuxaKz2e8h8Xgb2f4d6JbBhcNxsLjFn0xGbhZP0an/uNdIcL6y44h7gkLC9u7yNLSy1mfAz8Ig= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779259365; c=relaxed/simple; bh=Iai30pW1Shd70L4JlwSQId+yZeeM4OLxgfm84JoJWjA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pjE/LGObK6U14vjnyQbep+Hvln3K9AmS0tYrkPgJ9nhbyLpapwDkJNoHWHSZN/h7BshnVO5ORHbYGpwVHpvWL3vVkPQyKP0wMa6QGwQFxziOdwqp3B94ELaj6ko7xEsSwhigslAONjfQ1ExiDkm778NTqMNWY1b/70CVoCZZ+Yw= 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=GT9jUjeA; arc=fail smtp.client-ip=40.107.159.29 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="GT9jUjeA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VXvcRcvsPDU5l7ikuCAMSstNDdUSPnJtkpHZu3OedGssM2/WDuiFdlU+vRW//2bMhwxfGIGWYPL13rHIpaqYDVyu9DWbb+uuL66zHsc/oD9LtJ6CT9cKjbnpTeWuE2Ua+Nnrt3ami8iK52qFZ4zvTV9WAOJy0IoJcBkIXdHVnH8d4EjwJciuD/PDgoLJVz/HLxReL1r8rb4neX+3Gfaiqve5KzdA59/yGOUD3aZqQOKD+G5n1a+hQXOTUrsgnmDz6T1bzHmAOdRUMSG87+Tflymtb9z3XetcTwygd7kDSg+QhjXA3pE7c68pgPTUHF1qHZccs2Ae1q+WeGvb9itThw== 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=meHXnznMk/D+oKj6hJAkmmLSOfHCYLOIGtqlN45CEnY=; b=OWgGmXNBULyhIR4RSG34R76kpf+PVBe7N5a8EChW3fttHAJrjaWXtCORRL7jPIpRvfeSTtiNtlKStVlBpTbI8hJpayzVtHRVg2BsZFz6AdoUWmt3A9KkH/tsH1yeyJTyN91BZQMdlWCsYLT8GtmiYkR9C6Out+x4aIgnDfVXzCTiz0WqXdD56+8ob6663BrKZzMjdCdj+JQxmgg+bNLjLrYLitrdRkzy9dxuRNZIh3SJ9N7AtK5h79ausFR4paoWF/eDblhp401SUMndrt0wjwYTzUlSszbfc2BICnkqAnguVAPmzfbEdfWzxf9ANIxyObwB3e2C+zIpa1RmWOY7ig== 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=meHXnznMk/D+oKj6hJAkmmLSOfHCYLOIGtqlN45CEnY=; b=GT9jUjeA3AuhJKpc3F7EgLHI7aDef0TgH78lQo87wN1zyYe7JhrOsQnP2PMA+xdRtm1JN4cODvM/ZNNjlLQKVY/2sjkKHjCIuUaVQb5t6hOTkYdgyaXWmR+rta9NAe7+KDncsJg7bhzaTGBkrCEbuOZoPnV0jIeUGuNnqAvdEYdbiIdrWP3E5Q+Fj9FOphNaVDnb92fUBTJFZ9mrP6gsTN6qzluwrZDNQna4mKR8ixQaN6tmtUH/U9pmQFZwyMDyQZp+GdInSn23K8pXekLwSWwrjmIcnTaQzp2xweYjw8SwNy8b8x8H3/dlYl8ImbSLcKltBbLwWYkwzwM0ertEfA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) by DB9PR04MB11659.eurprd04.prod.outlook.com (2603:10a6:10:607::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 06:42:40 +0000 Received: from DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7]) by DBBPR04MB7500.eurprd04.prod.outlook.com ([fe80::c291:543b:4bde:cee7%6]) with mapi id 15.20.9913.009; Wed, 20 May 2026 06:42:40 +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, hramamurthy@google.com Cc: imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, catalin.horghidan@nxp.com Subject: [PATCH v3 net 9/9] net: enetc: avoid VF->PF mailbox timeout during SR-IOV teardown Date: Wed, 20 May 2026 14:44:21 +0800 Message-Id: <20260520064421.91569-10-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260520064421.91569-1-wei.fang@nxp.com> References: <20260520064421.91569-1-wei.fang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0011.apcprd04.prod.outlook.com (2603:1096:4:197::10) To DBBPR04MB7500.eurprd04.prod.outlook.com (2603:10a6:10:1f4::16) 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: DBBPR04MB7500:EE_|DB9PR04MB11659:EE_ X-MS-Office365-Filtering-Correlation-Id: 92cd8012-2310-44b7-ee71-08deb63afd02 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|52116014|1800799024|366016|38350700014|56012099003|18002099003|22082099003|11063799006; X-Microsoft-Antispam-Message-Info: MwK+N1gKYxPN2q+krhqkfIXyrHujwWZIuadlVf3grPsJj5J6XlzfhnfYCvbSqFRbdSZfrfvOBb5W4ufNiJC/CXYb01csji9YwKJF6jpqeLa68F1sk0H70LeIiF498fW9ldGruxiFTjc2VMDBl2zejiT03Iox2TB4hHTatCOCZRiC1kHl+rdhU3mAsmVC+1g8O3NmoDjWZ7rUJPKjTMZJlBYAycL0yL4v774m+98pEAg+PPpLSKtqrolTj+rVIxua7G4x5JeO6q7f7BwuIDTqTgxmrFdxXtRpCNZQiaOj8fFyRnQw9abuzmkWeu2M27crVkjwWftz1CfnDTZfDVYnZtRVKO9m14eIiFl73OrbrryCzyGc7iAYvk2rhJD3CkoIG8xRD7u7Uu3ZsZp2FEG94RbGORi01KvWgtNJurQeDlFOJ6VlMU8pzeKCi0lSJNIFg3ipfnI9xCF1UxntWJCHa1HAFqWuI52ZMrXo+fEHNLCVXk4asoI8wIiRwgcF3iD4Vq+0sQH3juTVdxJktaT2YHbPH0U8IlRuZfSuySwLigx55hO/4NHQepxs4Ib0Rb+2Dv4jKKcP3eIsi2H/+oBTZxcQLNf4Gjovi+3u3e4MnN5Pt2VogznEs3LAuBySRK6qYNz7IzQKceiotnAYD09eyA3UKKRGujaxINC7W41fJBVjp2BtbVN+ghXOuTcssL5de77xGAIEw/JxpBPI/pGJOQRPgzd/sdmcs5PM2kV/y1RnQqAZRszJH3hKBzv5mVpE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR04MB7500.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(52116014)(1800799024)(366016)(38350700014)(56012099003)(18002099003)(22082099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HulE00ExeStLK9Lb3jM48g9sWdzI/rJdDNLUOPvIsOWqbsjb2i6i2uVgoDAJ?= =?us-ascii?Q?2Y/1EkqFsJSQoBYJrW9FTivTA1HTJnmB4JtAXDkkOzFf58DrbbNECFqeAtjc?= =?us-ascii?Q?mmrz0NSKDUgR/SEdSpcoSs/rVJ7doJah4/O2gLOO8HUt6QvRGUTiS86uJoZy?= =?us-ascii?Q?bz7lk0fAfCFztjSSMY0UwsaVItgX7mHPfPw08uNkCaCGOsQfEbRauV0Ou6mo?= =?us-ascii?Q?Btqgz6qsvDrm/BvCnaGnFPIguHXl7yndBvnFholHd2rR9TkchIRydAu635n0?= =?us-ascii?Q?0XNvAxFAyhbgJ/dNDMw5ccYK2pbymqD5nlDr5bzx/7a2ukYZPRkXG1PRjG7F?= =?us-ascii?Q?uSv8ul+zHrdDVxwaZxkvXkZRI4BBPFY8PLY17AVlronmsHL4F09wvGoqRsgp?= =?us-ascii?Q?5LS2gU+/9GrUIdpQlr3WT4nG57tLce0ehxhiNMU2MgELf9b7E2EahelSEes1?= =?us-ascii?Q?3zmdMz0nmD7UjE+Qu3s0W/a+I93ZhSIB1ajDo7nIXZAtrRB2anm/XaNwhx0G?= =?us-ascii?Q?+97J57vaJUrfUH5KEHTlvUNoRH3vPWV8NZ0zOJbpNeMKlByAlQgMfkHZVw+G?= =?us-ascii?Q?GewZ8ZsMssAUzXdhI+DXIaKFF2UCzf+BO6VbiEID+BBZPj6XVIHawClh+dhU?= =?us-ascii?Q?/WZHzI+EkQ2nkK7VNZAdxixPNiv9m1lSx/+hfJrn6YbkKoIBgqqmYhIf+wip?= =?us-ascii?Q?JbenQGatOpCABCGbQdlfE/Zoh+s/e3cGCtVn+xl2qIyOLnqegcJUZhNxV5oc?= =?us-ascii?Q?zqrqscJb97uLmroJac3aDdp9Ngich/MqFPGFJffKYhAmEcee2K4h5rySrq75?= =?us-ascii?Q?VQhm0NvvBTBAZ9g/JcuhgaThLS5WBMZ/vzdz/UIRrdJ2oxEsu2XEy++zRBhh?= =?us-ascii?Q?hwy3xXUJ0QVSu69JTmM3P5Ja6cQY27H2GgWUFuqMxOEHHIQHCkSCB5dHeRDG?= =?us-ascii?Q?wi2YpHmustfMjiHwYRJ5EyPpRBfXimoDvhAS3H7PIJqMLkPjb6BA4ZzYOaTM?= =?us-ascii?Q?43sq/N9xUBs4i3BChArfpEunQ+LPCU1B1O6cxgfdrhbDtdHjdI4pwnFbHUTz?= =?us-ascii?Q?114i3JMBXPCqwkGFf0DcaXOpbC4ViYUBWwO1vhuyxfSpMIbbvlaGghJXbt3H?= =?us-ascii?Q?ltegoWRIm6HG3bo7MnSx0jU8cDrHjLpmgl73fKMIKkMgA8XuI2otWQvjOTYW?= =?us-ascii?Q?VhoBqO6zG3Nhbv5hlzus6mcksuwY/AdAv9/8PRdn7gBaC0m63N0ejSoYVI8z?= =?us-ascii?Q?PO0NiIGLz0U62YdyvVggSqqp2Xl2Yho9ATiE/nfvuiVo0iXnIwahOES9f597?= =?us-ascii?Q?cvsM4qumzgjTN6E4f/gQNfpc6ObwZ1bfrNI1N20vLhHK3uYqRja3VkwN92qQ?= =?us-ascii?Q?lTqUnknkAgaFKn1CKhvrRAdWvbNC6OnI197/2ajj44ACCBaejtLK27OUcjDd?= =?us-ascii?Q?7Hh1WcdX5peg+pLrQb+DpF3KoAsw/WBfd/kl3G/ht+jCJzy2jaUBZ2co/iKE?= =?us-ascii?Q?GCYQNn2/tFnYUdxCaRC1vIoVoTLDe1/VBWJFsPa8EwOGYFGx380Z2UpNg9L9?= =?us-ascii?Q?YjrX8jn18NKD5EGwLgKtpa/hy7md83/trmGjSNgYj1G6l+fJrOOdrk7C4jDu?= =?us-ascii?Q?hyPOEDLB4D3mFKwD+6elc7MaLl/gcQBafW3BSNLEFQmQ67RcBqYHrRCPxwYu?= =?us-ascii?Q?CmGYFBxtxe+VhKuqpwclW9phZZUa4cPv6GXU60RPL1URIySDwgOZwRK6RADi?= =?us-ascii?Q?rfudszjdcA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92cd8012-2310-44b7-ee71-08deb63afd02 X-MS-Exchange-CrossTenant-AuthSource: DBBPR04MB7500.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 06:42:40.7006 (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: h9FwXRvo7iq9hHUB69oUd8jMUK7SmjetxCbJ5ma62S7oEtx3DoOl0Icchb3eiYtm8q5gIDhcZW4ffeUD+Spz+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB11659 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. Fixes: beb74ac878c8 ("enetc: Add vf to pf messaging support") Signed-off-by: Wei Fang Reviewed-by: Harshitha Ramamurthy --- 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 8e11a023d516..3206b3daa1a0 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -563,9 +563,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