From nobody Fri Jun 19 07:48:48 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011018.outbound.protection.outlook.com [52.101.52.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 14EAB342C98; Sun, 26 Apr 2026 08:39:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777192749; cv=fail; b=hxjnWOecvCrVB9CpN+dcJPrHF4o4RaGQqQ7Bwe49DY828RHPpWsvy4Uq7bj71da3Wl5sS66VzpMLtKdsuJzC1eXirLRKVU4Q05dkg5ASyAsqeWQBpbJNJD3ZkgNjnwdKrP8QzuOITzXL2I2yjYsu7df10xj5j/rtUUccJEEoT0M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777192749; c=relaxed/simple; bh=+HmZDxRxUqAkRjiEu+A4zMU5EQTuzl8gbitFxFB9/9k=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=SkGSHDaMGkCfHXGX7Ln1U7yEUpC7ymD5k6R44mH/dRSjpcOi617O6cvtXd2RYPagYD1mQ76fv9XUMh84Q5x7uzeqrYv9IStNwAsR3SVDN+S/4iNLpPicpcT2i+R21lPttQHliOGcFozLoimoNAs58uRMbZ+44J9G7l1bJYtU+Go= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=WqgNBCyW; arc=fail smtp.client-ip=52.101.52.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="WqgNBCyW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xMJdNKEgxvepCn/bjLRKgqFnVCEcc76NI92C1e3rtCasIlSGz57lsce4PEr8bqZ49q2xf8DKq+iA1a82TDbwPHVF7iFYzZ2ATEcXg6hGINYi1NIjMDbo685rnGIp8WECWWsqHkxXmnfcmpQbm5BhldGUVq5m2dcoKtp6LM6kCc1tv3f97g+Cte+DV/0m7uCb6MKS3yOcTjWIMzsFfZKU1Asmr1djrlQHBVxfIBiwIz5h7PyfJGrbj1nV1C+q83ZM8QAsm76CAY+d1IA76oFoAXI6q4jMH+y0lE9Hta75edSBK1uQ0EUfF54vwK3QP4Rn2GTus42dBV9if4muZmHMxQ== 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=IOeuLjfxdQCPgscV5obhoO9gJq4GjSycN1HLr3P+/Os=; b=a04mGKQzuAIbjZGlDrA5wEdKsUNpP7B+v7YNhuGzaIeqiJwoftJcWggm2kBD8wJfQFhdLbZiSODXt/LtF/op8J5muqFxnYCqXexSgTOl8RcmAXSvSKYkL7hLwzISSikmt++wEPJEE2/hmqZSHo+iHH3NJ8gb4mt9oUV1CrjrWwKuLhiv/pPk0JT57GZt7zCLmv1I7dvV2FGgTqIMxYUAopOsVajLRkKYjBOmY8R5ToT7vt0ts6CJFO8+tlXVNK7NZoVsC1Xym9eH8/Z55s/Fam5WCAUWj4hnBl11op0EyoRl7xGGOlb+V7ZcgeiKtYdrFdq1V0B/ytZmdDble+msZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=google.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IOeuLjfxdQCPgscV5obhoO9gJq4GjSycN1HLr3P+/Os=; b=WqgNBCyWKt71le5eaUg25eBMprL+SADG6rX3+BuMhOg40gv++ID/EiRO79Cv5AZGSErlevTBcrVlgOwvvY0QrWBvyMHoCTuXSfkixXabBg1OWrjzOg2GdRQxsx46zZU3bvXNd4N/TElrNZp+W4+6GPvjTKQ9fUQhNNw75IlQoqnvNopYGDTOOb5RsAL6skQqBuMxgX9yhr8WSPiBxV2PMmN/3lSUeHU4TO7PKn6VQuzV7gvmf/bP0B9VEKL04DPFbE5AvbM+NlgyajLrYKtdkrbctgkhYY7odgeK8ND+nCcF//cDG9Jwll75PLpOmup0Zxia+985A3CxRbsqFcOnBQ== Received: from BYAPR04CA0036.namprd04.prod.outlook.com (2603:10b6:a03:40::49) by SJ0PR12MB7476.namprd12.prod.outlook.com (2603:10b6:a03:48d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.12; Sun, 26 Apr 2026 08:39:02 +0000 Received: from MWH0EPF000A6730.namprd04.prod.outlook.com (2603:10b6:a03:40:cafe::50) by BYAPR04CA0036.outlook.office365.com (2603:10b6:a03:40::49) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.25 via Frontend Transport; Sun, 26 Apr 2026 08:39:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MWH0EPF000A6730.mail.protection.outlook.com (10.167.249.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.18 via Frontend Transport; Sun, 26 Apr 2026 08:39:02 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Sun, 26 Apr 2026 01:38:45 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Sun, 26 Apr 2026 01:38:45 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Sun, 26 Apr 2026 01:38:39 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Boris Pismenny , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , "Mark Bloch" , Daniel Zahka , "Willem de Bruijn" , Cosmin Ratiu , Raed Salem , Rahul Rameshbabu , Dragos Tatulea , Kees Cook , , , , Gal Pressman Subject: [PATCH net V2 1/2] net/mlx5e: psp: Fix invalid access on PSP dev registration fail Date: Sun, 26 Apr 2026 11:38:18 +0300 Message-ID: <20260426083819.208937-2-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260426083819.208937-1-tariqt@nvidia.com> References: <20260426083819.208937-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWH0EPF000A6730:EE_|SJ0PR12MB7476:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a12c326-e95e-4085-68c5-08dea36f44a4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700016|82310400026|1800799024|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: eTBVwij95BLPR0wsfrZgceA3DtD9bcEZu9/fLFIgUNzrPn/n+FnLBHTyplF2a1DKCauAuOmJikEWcZmfSQB6DUMBFBaaooYGuxgKdAUgDwqCRwkLGfBgSbE2G3DsuT2l3ZN59xw6oSlsRTVm27Uqd411mOvug5kEZ300g5YjEd8ujbDRBHRd1v9zFASeuaxVnPhkLdlnuFUZZbtkER6xIwjvJhg1yi9CpaUrdMEqDyAkFQ7rljowCBlPrBWDxr5E1yTqo0IqksgoQFOBQWaCkfLXKZJ2v6xwRHn080NIe7Exo0jnu7v+0RvvsHfnijzK/yL7IOB+PaTQvfJrNKwr4VnNWH1OCGAmVJdsU/x0C2sgTe/P8+J1qI4fDNXLB87P1xJ7t6V8CxduCisE1qe2cPBH7zFrY3sNmdVF3pLHwi88WwDMW/jQZgkR9XK/3fGv7zpWiHzajOXbBgaHawrKQb3ssCRJ5+nw3KAJQ15BY3gP+L463eA5H9+CRV1NppucAxgWg1YBOjHxGUQDRWCrr1irNV9eI6vgwRux8wmanm4nsRKvIa3LN9P8nQuemOjlaatsmAygl4AeL8kBv2x/TGGD3XUWqNTSBlNAOMLKh2S92ni/Camy6SWCrZq/3Oy4VmwrA/A8ML+7culU5aneeMHBKf0hGSFjWZi7iVdPf+7yKseN4o0UdvOn3Vtb8gDRWD00ZidQjcZQkKpBrqo7O15jyJ6XuVTuSsV56ePkSn7uj+X6ES6XcXLHNYUm/nKWRbQAeXz73L3DEYQvCLlwVg== X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700016)(82310400026)(1800799024)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QABciH2+CI9p48FPxrpOBbEQLoQQ8/b1xVipqoTV/LRQrNW4ongd9YAK3poJ3uGfIFXS0PAVA9yNfsw/RigvwctBATc33PbVvN/DXJvMmA30zkiRZ5loxaEXZaEjMh5Olvhm0ew/1qRbR5InOzHLIGkOmDt4vaR+UrhYARbvMV4LpVwxTglotaOxSJRyxrjGOeyqYToppstRkXDXsPk91uES9JJAWdtPBMESnt+SU1dIJ2h6AgVNI4wWPAfCMXegdYprrrJJsiNNgkg5YDY/k5SJvGHhb8y7cecaFZtJjOCvi1/yhz1r0e4go0cd15lqUkzozr06L0+sdIzZshRZanzIcras2vaYcRnxNDtJCT4dpM4zU831qAxENwcHfLWTlPrRRDOnj1C0IrBKf+U+aJsVINmbsKufKjOto3JJG2LRDPBXRypGGsyQu1987lOd X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2026 08:39:02.0577 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8a12c326-e95e-4085-68c5-08dea36f44a4 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MWH0EPF000A6730.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB7476 Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu priv->psp->psp is initialized with the PSP device as returned by psp_dev_create(). This could also return an error, in which case a future psp_dev_unregister() will result in unpleasantness. Avoid that by using a local variable and only saving the PSP device when registration succeeds. Also apply some light refactoring of the functions managing the PSP device in order to make them more readable/safe. In case psp_dev_create() fails, priv->psp and steering structs are left in place, but they will be inert. The unchecked access of priv->psp in mlx5e_psp_offload_handle_rx_skb() won't happen because without a PSP device, there can be no SAs added and therefore no packets will be successfully decrypted and be handed off to the SW handler. Fixes: 89ee2d92f66c ("net/mlx5e: Support PSP offload functionality") Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- .../mellanox/mlx5/core/en_accel/psp.c | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c b/drive= rs/net/ethernet/mellanox/mlx5/core/en_accel/psp.c index 6a50b6dec0fa..d9adb993e64d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c @@ -1070,29 +1070,37 @@ static struct psp_dev_ops mlx5_psp_ops =3D { =20 void mlx5e_psp_unregister(struct mlx5e_priv *priv) { - if (!priv->psp || !priv->psp->psp) + struct mlx5e_psp *psp =3D priv->psp; + + if (!psp || !psp->psp) return; =20 - psp_dev_unregister(priv->psp->psp); + psp_dev_unregister(psp->psp); + psp->psp =3D NULL; } =20 void mlx5e_psp_register(struct mlx5e_priv *priv) { + struct mlx5e_psp *psp =3D priv->psp; + struct psp_dev *psd; + /* FW Caps missing */ if (!priv->psp) return; =20 - priv->psp->caps.assoc_drv_spc =3D sizeof(u32); - priv->psp->caps.versions =3D 1 << PSP_VERSION_HDR0_AES_GCM_128; + psp->caps.assoc_drv_spc =3D sizeof(u32); + psp->caps.versions =3D 1 << PSP_VERSION_HDR0_AES_GCM_128; if (MLX5_CAP_PSP(priv->mdev, psp_crypto_esp_aes_gcm_256_encrypt) && MLX5_CAP_PSP(priv->mdev, psp_crypto_esp_aes_gcm_256_decrypt)) - priv->psp->caps.versions |=3D 1 << PSP_VERSION_HDR0_AES_GCM_256; + psp->caps.versions |=3D 1 << PSP_VERSION_HDR0_AES_GCM_256; =20 - priv->psp->psp =3D psp_dev_create(priv->netdev, &mlx5_psp_ops, - &priv->psp->caps, NULL); - if (IS_ERR(priv->psp->psp)) + psd =3D psp_dev_create(priv->netdev, &mlx5_psp_ops, &psp->caps, NULL); + if (IS_ERR(psd)) { mlx5_core_err(priv->mdev, "PSP failed to register due to %pe\n", - priv->psp->psp); + psd); + return; + } + psp->psp =3D psd; } =20 int mlx5e_psp_init(struct mlx5e_priv *priv) @@ -1131,22 +1139,18 @@ int mlx5e_psp_init(struct mlx5e_priv *priv) if (!psp) return -ENOMEM; =20 - priv->psp =3D psp; fs =3D mlx5e_accel_psp_fs_init(priv); if (IS_ERR(fs)) { err =3D PTR_ERR(fs); - goto out_err; + kfree(psp); + return err; } =20 psp->fs =3D fs; + priv->psp =3D psp; =20 mlx5_core_dbg(priv->mdev, "PSP attached to netdevice\n"); return 0; - -out_err: - priv->psp =3D NULL; - kfree(psp); - return err; } =20 void mlx5e_psp_cleanup(struct mlx5e_priv *priv) --=20 2.44.0 From nobody Fri Jun 19 07:48:48 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012039.outbound.protection.outlook.com [52.101.48.39]) (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 98CC8348477; Sun, 26 Apr 2026 08:39:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.39 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777192753; cv=fail; b=hnTONef2s/r3zqw9gpNeLiConZt/iNI+Hhr/4KAkFKEB869UHEJVjNly7MAXI/2PMxgfqC2Y5HpDGD8Q7HghmARgmobMkpj6L6lU0quEhKyyTghvoCFTcGajHoLZBJl8mj0EnUpTYdehpcXw5yoRPC5sFPsHFh4bXNY47VLkTaM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777192753; c=relaxed/simple; bh=3byHFNC93gAfJOtDdU71buXfOsl1qA18d9jbQWI1Nr8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oyuJBbrNuDpWmsntPtf9dH4uMk0vuQxJjnJ2sByk2ZiTGNSGSRbMgyzZNa4EetS5ozcZC+AUJZPhfyA323PVCnBGA27ryFHFz8GqlG6rprwApB2T6Nidp0X5kjRbRFZnTNdHzpRTQ3adfVNEk6XrOoX/y7UAmUR4aHmuqoy3DUo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=J0qC2Jzt; arc=fail smtp.client-ip=52.101.48.39 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="J0qC2Jzt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HXOGc5TASoj2Ktv6tctosaxJDPC6Vsv/EJKwDMMfklWOUQVZB/JZZ58NMWeVvrTkf6dszTZbn6Dd88Y7TNW3OOgsPZrn181+CQZ9+RBizFEu7+0Kz+loDABzWX2LsTfKzhIxSOqr42lhFfw55unjaebTRT59NjKkbfiFEBROemcM6/9btyDIOm2O5lX+ZLzt4ALsMLNdR0/0m2qUiIOZrbs9ZGCwyzmrQp2DZri8Hn7U71KyL904rE7Pjmf8GWzWmGlh1iMFuMq2YVMR+pzMza5L0iJBX1GZ9pNidv1c8HDT5heyQBfqoFSOYUfGaFJNyY+ZJWK3TC28UnSuSEcMqQ== 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=0Q/GigAVK00gM2QCf1u2hzP1KeoY3ZFSBiy+dTlMHXM=; b=ARenSlYkbeUUjIveuc5MaUCKXduf9wZBDfoIqmDhm0ADD/4X63RNixP16n4BxZixjY1nN5F5mjDXTN0TmfufVuobCaPwwnWUmr8InXPaCGgwSQ+a4jtlQSadYyjnHTcqw1YYrM2X0DW6tMEkVnBgwfgWn46pFqnDa6Y+wS5qeIzQ1ibZftR8Y372/R7As5rF5SFV9ALbihQB5co6oQDk5GNq1ourzGUwGPyIz10hqH186dVk5OHIxMZ5JGKEWxUgmr0gojm58QenoceJ+v0EX6yFGyq6MuP+ljCieThxfUap0uALTKIiwafzToA6gniPrLS903/WRL5vYYFuJcpcRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=google.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0Q/GigAVK00gM2QCf1u2hzP1KeoY3ZFSBiy+dTlMHXM=; b=J0qC2Jzt/9r6/dcccOBaLXoNNO88hZ/ct1AYu/dzWp5aJxpBAavCk8Tw7DsGiShEwIqw9RL+uLaZbBZ8kADWbzt5yZ7Y/3GGQR1RW4NyBVD2LiMxnj/TNDaL/SW1ljv/WLYE0XjXWH8Rd7WlOLqGSAqMHI8tYB01nlrK/PzUfDgUyVj8bYoDlt+CVkpZ0eh+WetvhksnLxTrM3/Mw7MLhWnjuocvsYDlHz9fA6IRxEXzhNGj5T6gSmsaVxUEP7kA6+hZ4vnU6fwGIuVvHncYNAXT1NrN8V+25j18zAjTsdBL3ULXH24qjZQ1/fTvqaEJFjkndY4Y1LBWF/ZH95qMWg== Received: from SJ0PR13CA0065.namprd13.prod.outlook.com (2603:10b6:a03:2c4::10) by DS7PR12MB6021.namprd12.prod.outlook.com (2603:10b6:8:87::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.12; Sun, 26 Apr 2026 08:39:06 +0000 Received: from MW1PEPF0001615E.namprd21.prod.outlook.com (2603:10b6:a03:2c4:cafe::26) by SJ0PR13CA0065.outlook.office365.com (2603:10b6:a03:2c4::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.25 via Frontend Transport; Sun, 26 Apr 2026 08:39:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by MW1PEPF0001615E.mail.protection.outlook.com (10.167.249.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.0 via Frontend Transport; Sun, 26 Apr 2026 08:39:06 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Sun, 26 Apr 2026 01:38:51 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Sun, 26 Apr 2026 01:38:50 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.8) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Sun, 26 Apr 2026 01:38:45 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Boris Pismenny , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , "Mark Bloch" , Daniel Zahka , "Willem de Bruijn" , Cosmin Ratiu , Raed Salem , Rahul Rameshbabu , Dragos Tatulea , Kees Cook , , , , Gal Pressman Subject: [PATCH net V2 2/2] net/mlx5e: psp: Hook PSP dev reg/unreg to profile enable/disable Date: Sun, 26 Apr 2026 11:38:19 +0300 Message-ID: <20260426083819.208937-3-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260426083819.208937-1-tariqt@nvidia.com> References: <20260426083819.208937-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW1PEPF0001615E:EE_|DS7PR12MB6021:EE_ X-MS-Office365-Filtering-Correlation-Id: bfbb4eee-603b-423a-4c1c-08dea36f4712 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|376014|7416014|36860700016|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: dBV43aTyQdXzmTgPiVHzaIuptvqFbXalO4LVVexGjXo1VkhJ5lQuKRn/OTAlRhI26T8rc8VtVXcwum9BqkodOjjAbXjzSYGrdwcTjgcCa7JHwj+eRqT7z+i/OZmhOsqmj+oH7cbXkguxHGaCnEj9krrDrpRIUbsmNyJ1bI14qRccB6CgLH4dVLX2fzH9JnoqCVr4GF9C/IQID9nVJemxDV+WierIo7LpU6MorL0aRkhuty4x9du2uhOeXqSdK2RwRG87x8I0ytGL1Zl9wREeDaZ5KwiSDsrsMjK1QR1FfoVv5v+848NRUlmChfZyrMph/sX3M+egecJUiD2tsNVrqcj8UNFAWOcAbZAl5ysvEYE2GXyO5CCBxsfd5/mqZQA8g2Gvg2eDSLQCMscuPQepGM+2BPwSnRviINFR60ns39DjsjhfT69JfHtZeRmee4FLdqHGdlLnalRV66FBY4dEAqrIuwkmUQeNUWe7BWigIgm5S4gD/5CjCbOdw77JlLcteAOjZ8+N71cLN6nh39xWX9gmSFmFdwc42YSYVmWZUjGZZFjB5Cc/rX9C/Sm9HJCs2ZTpVH6kRQ5A6ontsAkOniy3861jbaaThGsea6onKmG4Gc7DJ0Vr6NVltybe5hM8uI2AYsgRRG2bpAzC3D+1lsiqm/KM8cYMNLyq8tJ7qdgCMCWyVI6OJkVCQAoKxeZXW9JTgKotyuf04GKFPyDhZz52FDBIOrTGiqQUlUFUPh9QNfFVXAVnJfuTrz2GtFfLLFspUj/N4tgKHCWVVCbjFA== X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(376014)(7416014)(36860700016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DkD4ha2FkqEXtaCVU5u2NgPmv183bseJzy71cwhHldC103OiKPJ4wZLdDFM/LnV/JxtUlQXqQMni1m24Y6G8Mtf0ZI4stgzc7hWEEIzzyec/x+ZS1OPc5oKTgVT1YQ11wduuIFIDyOvO3tyK9jeM+hS09nIcqaopA9/Y92vE7N2/9ywvbqVgsR//YhxSWz1PqqMM9Bc5viQnABfQPF4Uzwi0PAckdRhYhz6PP6DA0wNub6/uaILi9Qp0WNG4YK0sl9VF4L/n4/aXWs9zTOhZncrIqNLZPnCkBgNztinhGyWWAgbYg7AsKvaOjL3fwqRjKpka1Ppzabq2KiuR7cwlpYcQVh/WF8WgNb62qyIjaPLkbV985xCizdbVH9iNoJ2JQxpUGbEKURE92x2RQHiKeRiyUSxGRJ4Ri/Xnao/4aMhN5pnIiE0AehIeq/uHcMBX X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2026 08:39:06.1300 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bfbb4eee-603b-423a-4c1c-08dea36f4712 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MW1PEPF0001615E.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6021 Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu devlink reload while PSP connections are active does: mlx5_unload_one_devl_locked() -> mlx5_detach_device() -> _mlx5e_suspend() -> mlx5e_detach_netdev() -> profile->cleanup_rx -> profile->cleanup_tx -> mlx5e_destroy_mdev_resources() -> mlx5_core_dealloc_pd() fails: ... mlx5_core 0000:08:00.0: mlx5_cmd_out_err:821:(pid 19722): DEALLOC_PD(0x801) op_mod(0x0) failed, status bad resource state(0x9), syndrome (0xef0c8a), err(-22) ... The reason for failure is the existence of TX keys, which are removed by the PSP dev unregistration happening in: profile->cleanup() -> mlx5e_psp_unregister() -> mlx5e_psp_cleanup() -> psp_dev_unregister() ...but this isn't invoked in the devlink reload flow, only when changing the NIC profile (e.g. when transitioning to switchdev mode) or on dev teardown. Move PSP device registration into mlx5e_nic_enable(), and unregistration into the corresponding mlx5e_nic_disable(). These functions are called during netdev attach/detach after RX & TX are set up. This ensures that the keys will be gone by the time the PD is destroyed. Fixes: 89ee2d92f66c ("net/mlx5e: Support PSP offload functionality") Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/en_main.c index 5a46870c4b74..8e9443caa933 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -6023,7 +6023,6 @@ static int mlx5e_nic_init(struct mlx5_core_dev *mdev, if (take_rtnl) rtnl_lock(); =20 - mlx5e_psp_register(priv); /* update XDP supported features */ mlx5e_set_xdp_feature(priv); =20 @@ -6036,7 +6035,6 @@ static int mlx5e_nic_init(struct mlx5_core_dev *mdev, static void mlx5e_nic_cleanup(struct mlx5e_priv *priv) { mlx5e_health_destroy_reporters(priv); - mlx5e_psp_unregister(priv); mlx5e_ktls_cleanup(priv); mlx5e_psp_cleanup(priv); mlx5e_fs_cleanup(priv->fs); @@ -6160,6 +6158,7 @@ static void mlx5e_nic_enable(struct mlx5e_priv *priv) =20 mlx5e_fs_init_l2_addr(priv->fs, netdev); mlx5e_ipsec_init(priv); + mlx5e_psp_register(priv); =20 err =3D mlx5e_macsec_init(priv); if (err) @@ -6230,6 +6229,7 @@ static void mlx5e_nic_disable(struct mlx5e_priv *priv) mlx5_lag_remove_netdev(mdev, priv->netdev); mlx5_vxlan_reset_to_default(mdev->vxlan); mlx5e_macsec_cleanup(priv); + mlx5e_psp_unregister(priv); mlx5e_ipsec_cleanup(priv); } =20 --=20 2.44.0