]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net/mlx5e: psp: Expose only a fully initialized priv->psp
authorCosmin Ratiu <cratiu@nvidia.com>
Mon, 4 May 2026 18:10:59 +0000 (21:10 +0300)
committerJakub Kicinski <kuba@kernel.org>
Wed, 6 May 2026 02:09:04 +0000 (19:09 -0700)
Currently, during PSP init, priv->psp is initialized to an incompletely
built psp struct. Additionally, on fs init failure priv->psp is reset to
NULL.

Change this so that only a fully initialized priv->psp is set, which
makes the code easier to reason about in failure scenarios.

Fixes: af2196f49480 ("net/mlx5e: Implement PSP operations .assoc_add and .assoc_del")
Signed-off-by: Cosmin Ratiu <cratiu@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20260504181100.269334-3-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c

index 1ff818fb48df2cf3a223c344e0aac7e5b194d71c..d9adb993e64d9540ac4c8e00b251777765124959 100644 (file)
@@ -1139,22 +1139,18 @@ int mlx5e_psp_init(struct mlx5e_priv *priv)
        if (!psp)
                return -ENOMEM;
 
-       priv->psp = psp;
        fs = mlx5e_accel_psp_fs_init(priv);
        if (IS_ERR(fs)) {
                err = PTR_ERR(fs);
-               goto out_err;
+               kfree(psp);
+               return err;
        }
 
        psp->fs = fs;
+       priv->psp = psp;
 
        mlx5_core_dbg(priv->mdev, "PSP attached to netdevice\n");
        return 0;
-
-out_err:
-       priv->psp = NULL;
-       kfree(psp);
-       return err;
 }
 
 void mlx5e_psp_cleanup(struct mlx5e_priv *priv)