On 9/24/2021 3:44 PM, Greg Kroah-Hartman wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org
This reverts commit fe6322774ca28669868a7e231e173e09f7422118 which was commit 82e6c96f04e13c72d91777455836ffd012853caa upstream.
It has been reported to cause regressions so should be dropped.
Reported-by: Patrick.Mclean@sony.com Link: https://lore.kernel.org/r/BY5PR13MB3604D3031E984CA34A57B7C9EEA09@BY5PR13MB36... Cc: Aya Levin ayal@nvidia.com Cc: Tariq Toukan tariqt@nvidia.com Cc: Tariq Toukan tariqt@nvidia.com Cc: Saeed Mahameed saeedm@nvidia.com Cc: Jakub Kicinski kuba@kernel.org Cc: Sasha Levin sashal@kernel.org Cc: Leon Romanovsky leonro@nvidia.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
Hi Greg,
This issue is solved within the same upstream series, by upstream patch: [1] 241dc159391f net/mlx5: Notify on trap action by blocking event
We didn't spot the issue back then, the two patches should've been submitted in a reversed order in the original series to avoid this temporary degradation.
This patch "net/mlx5: Register to devlink ingress VLAN filter trap" is not a bug fix, not really needed in 5.10 stable. I believe you cherry-picked it into 5.10 to handle some code context problem?
In summary, if the revert works for you w/o further degradation then we are fine with it. The alternative is to import the whole original series, especially the patch mentioned above [1].
Thanks, Tariq
drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 51 ---------------------- 1 file changed, 51 deletions(-)
--- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c @@ -376,48 +376,6 @@ static void mlx5_devlink_set_params_init #endif } -#define MLX5_TRAP_DROP(_id, _group_id) \
- DEVLINK_TRAP_GENERIC(DROP, DROP, _id, \
DEVLINK_TRAP_GROUP_GENERIC_ID_##_group_id, \
DEVLINK_TRAP_METADATA_TYPE_F_IN_PORT)
-static const struct devlink_trap mlx5_traps_arr[] = {
- MLX5_TRAP_DROP(INGRESS_VLAN_FILTER, L2_DROPS),
-};
-static const struct devlink_trap_group mlx5_trap_groups_arr[] = {
- DEVLINK_TRAP_GROUP_GENERIC(L2_DROPS, 0),
-};
-static int mlx5_devlink_traps_register(struct devlink *devlink) -{
- struct mlx5_core_dev *core_dev = devlink_priv(devlink);
- int err;
- err = devlink_trap_groups_register(devlink, mlx5_trap_groups_arr,
ARRAY_SIZE(mlx5_trap_groups_arr));
- if (err)
return err;
- err = devlink_traps_register(devlink, mlx5_traps_arr, ARRAY_SIZE(mlx5_traps_arr),
&core_dev->priv);
- if (err)
goto err_trap_group;
- return 0;
-err_trap_group:
- devlink_trap_groups_unregister(devlink, mlx5_trap_groups_arr,
ARRAY_SIZE(mlx5_trap_groups_arr));
- return err;
-}
-static void mlx5_devlink_traps_unregister(struct devlink *devlink) -{
- devlink_traps_unregister(devlink, mlx5_traps_arr, ARRAY_SIZE(mlx5_traps_arr));
- devlink_trap_groups_unregister(devlink, mlx5_trap_groups_arr,
ARRAY_SIZE(mlx5_trap_groups_arr));
-}
- int mlx5_devlink_register(struct devlink *devlink, struct device *dev) { int err;
@@ -432,16 +390,8 @@ int mlx5_devlink_register(struct devlink goto params_reg_err; mlx5_devlink_set_params_init_values(devlink); devlink_params_publish(devlink);
- err = mlx5_devlink_traps_register(devlink);
- if (err)
goto traps_reg_err;
- return 0;
-traps_reg_err:
- devlink_params_unregister(devlink, mlx5_devlink_params,
params_reg_err: devlink_unregister(devlink); return err;ARRAY_SIZE(mlx5_devlink_params));
@@ -449,7 +399,6 @@ params_reg_err: void mlx5_devlink_unregister(struct devlink *devlink) {
- mlx5_devlink_traps_unregister(devlink); devlink_params_unpublish(devlink); devlink_params_unregister(devlink, mlx5_devlink_params, ARRAY_SIZE(mlx5_devlink_params));