Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'net-mlx5e-psp-fixes'

Tariq Toukan says:

====================
net/mlx5e: PSP fixes

This patchset provides bug fixes from Cosmin to the mlx5e PSP feature.
====================

Link: https://patch.msgid.link/20260504181100.269334-1-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+22 -18
+20 -16
drivers/net/ethernet/mellanox/mlx5/core/en_accel/psp.c
··· 1070 1070 1071 1071 void mlx5e_psp_unregister(struct mlx5e_priv *priv) 1072 1072 { 1073 - if (!priv->psp || !priv->psp->psp) 1073 + struct mlx5e_psp *psp = priv->psp; 1074 + 1075 + if (!psp || !psp->psp) 1074 1076 return; 1075 1077 1076 - psp_dev_unregister(priv->psp->psp); 1078 + psp_dev_unregister(psp->psp); 1079 + psp->psp = NULL; 1077 1080 } 1078 1081 1079 1082 void mlx5e_psp_register(struct mlx5e_priv *priv) 1080 1083 { 1084 + struct mlx5e_psp *psp = priv->psp; 1085 + struct psp_dev *psd; 1086 + 1081 1087 /* FW Caps missing */ 1082 1088 if (!priv->psp) 1083 1089 return; 1084 1090 1085 - priv->psp->caps.assoc_drv_spc = sizeof(u32); 1086 - priv->psp->caps.versions = 1 << PSP_VERSION_HDR0_AES_GCM_128; 1091 + psp->caps.assoc_drv_spc = sizeof(u32); 1092 + psp->caps.versions = 1 << PSP_VERSION_HDR0_AES_GCM_128; 1087 1093 if (MLX5_CAP_PSP(priv->mdev, psp_crypto_esp_aes_gcm_256_encrypt) && 1088 1094 MLX5_CAP_PSP(priv->mdev, psp_crypto_esp_aes_gcm_256_decrypt)) 1089 - priv->psp->caps.versions |= 1 << PSP_VERSION_HDR0_AES_GCM_256; 1095 + psp->caps.versions |= 1 << PSP_VERSION_HDR0_AES_GCM_256; 1090 1096 1091 - priv->psp->psp = psp_dev_create(priv->netdev, &mlx5_psp_ops, 1092 - &priv->psp->caps, NULL); 1093 - if (IS_ERR(priv->psp->psp)) 1097 + psd = psp_dev_create(priv->netdev, &mlx5_psp_ops, &psp->caps, NULL); 1098 + if (IS_ERR(psd)) { 1094 1099 mlx5_core_err(priv->mdev, "PSP failed to register due to %pe\n", 1095 - priv->psp->psp); 1100 + psd); 1101 + return; 1102 + } 1103 + psp->psp = psd; 1096 1104 } 1097 1105 1098 1106 int mlx5e_psp_init(struct mlx5e_priv *priv) ··· 1139 1131 if (!psp) 1140 1132 return -ENOMEM; 1141 1133 1142 - priv->psp = psp; 1143 1134 fs = mlx5e_accel_psp_fs_init(priv); 1144 1135 if (IS_ERR(fs)) { 1145 1136 err = PTR_ERR(fs); 1146 - goto out_err; 1137 + kfree(psp); 1138 + return err; 1147 1139 } 1148 1140 1149 1141 psp->fs = fs; 1142 + priv->psp = psp; 1150 1143 1151 1144 mlx5_core_dbg(priv->mdev, "PSP attached to netdevice\n"); 1152 1145 return 0; 1153 - 1154 - out_err: 1155 - priv->psp = NULL; 1156 - kfree(psp); 1157 - return err; 1158 1146 } 1159 1147 1160 1148 void mlx5e_psp_cleanup(struct mlx5e_priv *priv)
+2 -2
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
··· 6023 6023 if (take_rtnl) 6024 6024 rtnl_lock(); 6025 6025 6026 - mlx5e_psp_register(priv); 6027 6026 /* update XDP supported features */ 6028 6027 mlx5e_set_xdp_feature(priv); 6029 6028 ··· 6035 6036 static void mlx5e_nic_cleanup(struct mlx5e_priv *priv) 6036 6037 { 6037 6038 mlx5e_health_destroy_reporters(priv); 6038 - mlx5e_psp_unregister(priv); 6039 6039 mlx5e_ktls_cleanup(priv); 6040 6040 mlx5e_psp_cleanup(priv); 6041 6041 mlx5e_fs_cleanup(priv->fs); ··· 6158 6160 6159 6161 mlx5e_fs_init_l2_addr(priv->fs, netdev); 6160 6162 mlx5e_ipsec_init(priv); 6163 + mlx5e_psp_register(priv); 6161 6164 6162 6165 err = mlx5e_macsec_init(priv); 6163 6166 if (err) ··· 6229 6230 mlx5_lag_remove_netdev(mdev, priv->netdev); 6230 6231 mlx5_vxlan_reset_to_default(mdev->vxlan); 6231 6232 mlx5e_macsec_cleanup(priv); 6233 + mlx5e_psp_unregister(priv); 6232 6234 mlx5e_ipsec_cleanup(priv); 6233 6235 } 6234 6236